La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Seguridad IPTABLES Realizado: Kepa Bengoetxea

Presentaciones similares


Presentación del tema: "Seguridad IPTABLES Realizado: Kepa Bengoetxea"— Transcripción de la presentación:

1 Seguridad IPTABLES Realizado: Kepa Bengoetxea jipbekok@vc.ehu.es

2 Iptables Referencia: http://doc.ubuntu-es.org/Iptables https://help.ubuntu.com/community/IptablesHowTo https://help.ubuntu.com/community/Firestarter https://help.ubuntu.com/community/Gufw https://help.ubuntu.com/community/UFW http://doc.ubuntu.com/ubuntu/serverguide/C/firewall.html

3 Iptables Iptables filtra los paquetes de red. Un fichero antes de ser enviado por la red se descompone en paquetes red que se reensamblarán de nuevo en el ordenador destino. Un paquete de red es una colección de datos en diferentes tamaños y formatos. El paquete puede decirle a los ordenadores a lo largo del camino, así como al ordenador destino, de dónde viene, a dónde va, qué tipo de paquete es, y otras muchas cosas más.

4 Iptables.Tablas El filtro de red del kernel tiene tres tablas:  Filter :La tabla por defecto para el manejo de paquetes de red. Ejm:Filtrar paquetes que proceden de un puerto, etc...  Nat(Network Address Translation) : se puede utilizar para modificar las direcciones de origen y destino grabadas en un paquete. Ejm: que varios ordenadores de una misma red compartan una sola dirección ip pública, y todos puedan usar internet simultáneamente.  Mangle: Usada por tipos específicos de alteración de paquetes. Ejm:para que todo paquete cuya dirección MAC que no coincida con el IP asignado por el DHCP sea omitido. Estas tablas tienen asociados un grupo de cadenas internas. A cada cadena interna se le asocia un conjunto de reglas.

5 Iptables.Filter.Cadenas La tabla filter tiene predefinidas las siguientes cadenas internas: INPUT: iptables envia el paquete a esta cadena si el destino del paquete de red es el sistema local. OUTPUT:iptables envia el paquete a esta cadena si el sistema local es el que genera el paquete de red. FOWARD: iptables envia el paquete a esta cadena si el paquete procede de una máquina origen y destino diferente al sistema local.  Para más información ver el dibujo siguiente que ha sido recogido de:http://www.siliconvalleyccie.com/linux- hn/iptables-intro.htm#_Toc92808862

6

7 Tabla.Cadena.Reglas-Objetivo A cada cadena interna se le asocia un conjunto de reglas Si se cumple el conjunto de reglas o regla se realiza el objetivo (target) Tipos de objetivos:(simil cartero)  ACCEPT: Acepta el paquete, y va a su aplicación destino  DROP: Niega el paquete, no se avisa de ello  REJECT: Niega el paquete, pero se le avisa con un error al origen.

8 Tabla.Cadena.Reglas-Objetivo Podemos ver la reglas: iptables -L (Por defecto no hay ninguna regla) Por cada paquete que entra va pasando por todas las reglas *filter-input # Todas las conexiones establecidas son aceptadas sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

9 Tabla.Cadena.Reglas-Objetivo Añadir reglas para filtrar paquetes de red: -Se ACEPTA todos los paquetes que vienen por la INTERFACE loopback:( (La interfaz loopback' es un tipo especial de interfaz que le permite hacer conexiones consigo mismo. Por ejemplo, puede que desee probar algún tipo de programa sin interferir con alguien más en su red. Por convención, la dirección de red IP 127.0.0.1 ha sido asignada específicamente para el dispositivo de pruebas) sudo iptables -I INPUT -i lo -j ACCEPT -Se ACEPTA todos los paquetes que entran por el PUERTO 80: sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

10 Iptables.Configuración #internet control message protocol (Se utiliza para indicar condiciones de error, usado en el protocolo ip) sudo iptables -A INPUT -p icmp --icmp-type any -j ACCEPT #dns sudo iptables -A INPUT -p udp --dport 5353 -d 10.10.13.6 -j ACCEPT sudo iptables -A INPUT -p udp --dport 5353 -d 10.20.13.6 -j ACCEPT sudo iptables -A INPUT -p udp --dport 5353 -d 10.30.13.6 -j ACCEPT #ipp(internet printer protocol)-impresora conectada en red con cups sudo iptables -A INPUT -p tcp -m tcp --dport 631 -j ACCEPT

11 Iptables.Configuración #EVITANDO INTENTOS DE SSH #creamos una cadena SSH y SSHSCAN sudo iptables -t filter -N SSH sudo iptables -t filter -N SSHSCAN #todos los paquetes que tienen como destino el puerto 22 son enviados a la cadena SSH sudo iptables -A INPUT -p tcp --dport 22 -j SSH #si provienen de la mismo origen y se producen 6 intentos #en menos de 1 minuto son tratadas por SSHSCAN sudo iptables -A SSH -m state --state NEW -m recent --name SSH -- rsource --update --seconds 60 --hitcount 6 -j SSHSCAN

12 Iptables.Configuración #se acepta todo lo que no se supone escaneo sudo iptables -A SSH -m state --state NEW -m recent --name SSH -- rsource --set -j ACCEPT #los escaneos se logean con una indicación clara de DEMASIADOS SSH sudo iptables -A SSHSCAN -m limit --limit 1/minute --limit-burst 2 -j LOG --log-prefix "OJO, HAY DEMASIADOS SSH: " #se descartan a modo que no pasan del firewall y no saturan nuestro equipo sudo iptables -A SSHSCAN -j DROP

13 Iptables.Configuración # Se RECHAZAN TODOS los paquetes que no han sido aceptados hasta ahora, NOTIFICANDO AL ORIGEN un mensaje de icmp-host-prohibited: sudo iptables -A INPUT -j REJECT --reject-with icmp-host- prohibited -Se RECHAZAN TODOS sin notificación: sudo iptables -A INPUT -j DROP

14 Iptables. Guardando Ver el resultado obtenido: $sudo iptables -L -v Si apagas la máquina todas las reglas que has generado desaparecen, para salvar la reglas usa: iptables-save y iptables-restore. sudo bash -c "iptables-save > /etc/iptables.rules" Nota: Si quieres utilizar iptables, desinstala firestarter Desabilitar el firewall temporalmente vaciando las reglas del iptables: sudo iptables -F

15 Iptables. Guardando Y para que se guarden después de apagar la red o apliquen antes arrancar la red de manera automática: sudo gedit /etc/network/if-pre-up.d/iptablesload #!/bin/sh iptables-restore < /etc/iptables.rules exit 0 sudo gedit /etc/network/if-post-down.d/iptablessave #!/bin/sh iptables-save -c > /etc/iptables.rules if [ -f /etc/iptables.downrules ]; then iptables-restore < /etc/iptables.downrules fi exit 0 Then be sure to give both scripts execute permissions: sudo chmod +x /etc/network/if-post-down.d/iptablessave sudo chmod +x /etc/network/if-pre-up.d/iptablesload

16 -A - Append this rule to a rule chain. Valid chains for what we're doing are INPUT, FORWARD and OUTPUT, but we mostly deal with INPUT in this tutorial, which affects only incoming traffic. -L - List the current filter rules. -m conntrack - Allow filter rules to match based on connection state. Permits the use of the --ctstate option. --ctstate - Define the list of states for the rule to match on. Valid states are: NEW - The connection has not yet been seen. RELATED - The connection is new, but is related to another connection already permitted. ESTABLISHED - The connection is already established. INVALID - The traffic couldn't be identified for some reason. -m limit - Require the rule to match only a limited number of times. Allows the use of the --limit option. Useful for limiting logging rules. --limit - The maximum matching rate, given as a number followed by "/second", "/minute", "/hour", or "/day" depending on how often you want the rule to match. If this option is not used and -m limit is used, the default is "3/hour". -p - The connection protocol used. --dport - The destination port(s) required for this rule. A single port may be given, or a range may be given as start:end, which will match all ports from start to end, inclusive.

17 -j - Jump to the specified target. By default, iptables allows four targets: ACCEPT - Accept the packet and stop processing rules in this chain. REJECT - Reject the packet and notify the sender that we did so, and stop processing rules in this chain. DROP - Silently ignore the packet, and stop processing rules in this chain. LOG - Log the packet, and continue processing more rules in this chain. Allows the use of the --log-prefix and --log-level options. --log-prefix - When logging, put this text before the log message. Use double quotes around the text to use. --log-level - Log using the specified syslog level. 7 is a good choice unless you specifically need something else. -i - Only match if the packet is coming in on the specified interface. -I - Inserts a rule. Takes two options, the chain to insert the rule into, and the rule number it should be. -I INPUT 5 would insert the rule into the INPUT chain and make it the 5th rule in the list. -v - Display more information in the output. Useful for if you have rules that look similar without using -v. -s --source - address[/mask] source specification -d --destination - address[/mask] destination specification -o --out-interface - output name[+] network interface name ([+] for wildcard)


Descargar ppt "Seguridad IPTABLES Realizado: Kepa Bengoetxea"

Presentaciones similares


Anuncios Google