Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Publicado el Jueves, 17 Mayo 2012 07:00 | Valoracin del Usuario: Malo proyecto: netfilter es un conjunto de hooks dentro del kernel de Linux que permite a los mdulos del ncleo registrar las funciones de devolucin de llamadas con la pila de red. Una funcin de devolucin de llamadas registradas entonces se llam de nuevo para cada paquete que atraviese el hooks correspondiente dentro de la pila de red. Este firewall basado en Linux est controlada por el programa llamado iptables para el filtrado para IPv4 e ip6tables. Recomiendo que primero lea nuestro tutorial rpido que explica cmo configurar un firewall basado en host llamado Netfilter (iptables) en CentOS / RHEL / Fedora / Red Hat Enterprise Linux. Este post muestra las listas ms comunes de iptables con las soluciones requeridas por un nuevo usuario de Linux que quiera asegurar su sistema operativo Linux de intrusos. Bueno /0
Valoracin
Linux viene con un firewall basado en hosts llamado Netfilter. Segn el sitio oficial del
Por encima de la produccin indica que el firewall no est activa. El siguiente ejemplo muestra un firewall activo: # iptables -L -n -v Salidas de la muestra:
Chain INPUT (policy DROP 0 packets, 0 bytes) pkts bytes target 0 0 DROP 394 43586 ACCEPT 93 17292 ACCEPT 1 142 ACCEPT prot opt in all all all all ----* * br0 lo out * * * * out br0 * * * * vlan2 * out out out source 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 source 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 source source source destination 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 destination 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 destination destination destination state INVALID tcp flags:0x06/0x02 state RELATED,ESTABLISHED state INVALID state RELATED,ESTABLISHED
Chain FORWARD (policy DROP 0 packets, 0 bytes) pkts bytes target 0 0 0 0 0 0 0 0 ACCEPT 0 DROP 0 TCPMSS 0 ACCEPT 0 wanin 0 wanout 0 ACCEPT prot opt in all all tcp all all all all -------br0 * * * vlan2 * br0
Chain OUTPUT (policy ACCEPT 425 packets, 113K bytes) pkts bytes target pkts bytes target pkts bytes target prot opt in prot opt in prot opt in Chain wanin (1 references) Chain wanout (1 references)
Cuando, -L: Lista de reglas. -V: Muestra informacin detallada. Esta opcin hace que el comando de la lista muestra el nombre de la interfaz, las opciones de la regla, y las mscaras TOS. Los contadores de bytes y de paquetes tambin estn en la lista, con 'K' el sufijo 'M' o 'G' para 1000, 1.000.000 y multiplicadores de 1,000,000,000, respectivamente. -N: la direccin IP y el puerto de visualizacin en formato numrico. No utilizar DNS para resolver nombres. Esto acelerar la lista.
target ACCEPT DROP TCPMSS ACCEPT wanin wanout ACCEPT target target target
prot opt source all all tcp all all all all -------0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0
destination 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 destination destination destination state INVALID tcp flags:0x06/0x02 TCPMSS clamp to PMTU state RELATED,ESTABLISHED
Chain OUTPUT (policy ACCEPT) prot opt source prot opt source prot opt source Chain wanin (1 references) Chain wanout (1 references)
Puede utilizar los nmeros de lnea para eliminar o insertar nuevas reglas en el cortafuegos.
-T table_name: mesa de seleccin (llamado nat o mangle) y borrar / normas de descarga. -P: Establece la poltica por defecto (como DROP, REJECT, o aceptar).
# iptables -L INPUT -n --line-numbers # iptables -L OUTPUT -n --line-numbers # iptables -L OUTPUT -n --line-numbers | less # iptables -L OUTPUT -n --line-numbers | grep 202.54.1.1 Usted recibir la lista de IP. Mira el nmero de la izquierda, a continuacin, utilizar el nmero para eliminarlo. Por ejemplo, borrar el nmero de lnea 4, escriba:
# iptables -D INPUT -s 202.54.1.1 -j DROP Cuando, -D: Eliminar una o ms reglas de la cadena seleccionada
Chain INPUT (policy DROP) num 1 2 target DROP ACCEPT prot opt source all all --202.54.1.1 0.0.0.0/0 destination 0.0.0.0/0 0.0.0.0/0 state NEW,ESTABLISHED
Para ver las reglas actualizadas, escriba: # iptables -L INPUT -n --line-numbers Salidas de la muestra:
Chain INPUT (policy DROP) num 1 2 3 target DROP DROP ACCEPT prot opt source all all all ---202.54.1.1 202.54.1.2 0.0.0.0/0 destination 0.0.0.0/0 0.0.0.0/0 0.0.0.0/0 state NEW,ESTABLISHED
# iptables -A INPUT -s 202.5.4.1 -j DROP # service iptables save Para el resto de distros utilizar el comando iptables-save:
# iptables-restore < /root/my.active.firewall.rules Para restaurar las reglas del firewall en CentOS / RHEL / Fedora Linux, escriba:
# iptables -P INPUT DROP # iptables -P OUTPUT DROP # iptables -P FORWARD DROP # iptables -L -v -n #### you will not able to connect anywhere as all traffic is dropped ### # ping cyberciti.biz # wget http://www.kernel.org/pub/linux/kernel/v3.0/testing/linux-3.2-rc5.tar.bz2
# iptables -P INPUT DROP # iptables -P FORWARD DROP # iptables -P OUTPUT ACCEPT # iptables -A INPUT -m state --state NEW,ESTABLISHED -j ACCEPT # iptables -L -v -n ### *** now ping and wget should work *** ### # ping cyberciti.biz # wget http://www.kernel.org/pub/linux/kernel/v3.0/testing/linux-3.2-rc5.tar.bz2
# iptables -A INPUT -i eth1 -s 192.168.0.0/24 -j DROP # iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP
# 8.1: rangos de direcciones IPv4 para redes privadas (asegrese de que se bloquean en la interfaz pblica)
10.0.0.0/8 -j (A) 172.16.0.0/12 (B) 192.168.0.0/16 (C) 224.0.0.0/4 (MULTICAST D) 240.0.0.0/5 (E)
127.0.0.0/8 (LOOPBACK)
# iptables -A INPUT -p tcp --dport 80 -j DROP # iptables -A INPUT -i eth1 -p tcp --dport 80 -j DROP Para bloquear el puerto 80 slo para una direccin IP 1.2.3.4, escriba:
# iptables -A INPUT -p tcp -s 1.2.3.4 --dport 80 -j DROP # iptables -A INPUT -i eth1 -p tcp -s 192.168.1.0/24 --dport 80 -j DROP
Salidas de la muestra: cyberciti.biz tiene la direccin 75.126.153.206 Anote su direccin IP y escriba lo siguiente para bloquear todo el trfico saliente a 75.126.153.206:
Salidas de la muestra: CIDR: 69.171.224.0/19 Para prevenir el acceso externo a www.facebook.com, escriba:
# iptables -A OUTPUT -p tcp -d 69.171.224.0/19 -j DROP Tambin puede usar el nombre de dominio, escriba:
# iptables -A OUTPUT -p tcp -d www.facebook.com -j DROP # iptables -A OUTPUT -p tcp -d facebook.com -j DROP Desde la pgina del manual de iptables: ... especificar cualquier nombre que se resuelve con una consulta a distancia, tales como DNS (por ejemplo, facebook.com es realmente una mala idea), una direccin IP de la red (con / mscara), o una simple direccin IP ...
# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j LOG --log-prefix "IP_SPOOF A: " # iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP
# iptables -A INPUT -i eth1 -s 10.0.0.0/8 -m limit --limit 5/m --limit-burst 7 -j LOG -log-prefix "IP_SPOOF A: " # iptables -A INPUT -i eth1 -s 10.0.0.0/8 -j DROP
# iptables -A INPUT -p icmp --icmp-type echo-request -j DROP # iptables -A INPUT -i eth1 -p icmp --icmp-type echo-request -j DROP Respuestas Ping tambin puede estar limitada a ciertas redes o hosts:
### ** assumed that default INPUT policy set to DROP ** ############# iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT iptables -A INPUT -p icmp --icmp-type destination-unreachable -j ACCEPT iptables -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT ## ** all our server to respond to pings ** ## iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 7000:7010 -j ACCEPT
Utilice el nivel de registro crtico para enviar mensajes a un archivo de registro en vez de la consola: iptables -A INPUT -s 1.2.3.4 -p tcp --destination-port 80 -j LOG --log-level crit
## open access to proxy server for lan users only ## iptables -A INPUT -s 192.168.1.0/24 -m state --state NEW -p tcp --dport 3128 -j ACCEPT
## open access to mysql server for lan users only ## iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
# 21: Restringir el nmero de conexiones paralelas a un servidor por IP del cliente Usted puede utilizar el mdulo connlimit para imponer restricciones. Para permitir las conexiones ssh 3 por host cliente, entre:
# iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j REJECT Establecer las peticiones HTTP a 20: # iptables -p tcp --syn --dport 80 -m connlimit --connlimit-above 20 --connlimit-mask 24 -j DROP Cuando, 1. - Connlimit-por encima de 3: Coincidir si el nmero de conexiones existentes est por encima de 3. 2. - Connlimit mscara de 24: Grupo de los ejrcitos con la longitud del prefijo. Para IPv4, este debe ser un nmero entre (incluido) 0 y 32.
$ man iptables Usted puede ver la ayuda con la siguiente sintaxis tambin:
# iptables -h
# iptables -j DROP -h
# netstat -tulpn Averige si el puerto TCP 80 abierto o no, escriba: # netstat -tulpn | grep :80 Si el puerto 80 no est abierto, inicie el Apache, escriba: # service httpd start Haga iptables seguro que permite el acceso al puerto 80: # iptables -L INPUT -v -n | grep 80 De lo contrario abrir el puerto 80 utilizando los iptables para todos los usuarios: # iptables -A INPUT -m state --state NEW -p tcp --dport 80 -j ACCEPT # service iptables save Utilice el comando telnet para ver si el firewall permite la conexin al puerto 80: $ telnet www.cyberciti.biz 80 Salidas de la muestra: Trying 75.126.153.206... Connected to www.cyberciti.biz. Escape character is '^]'. ^] telnet> quit Connection closed.
Usted puede utilizar nmap para probar su propio servidor con la siguiente sintaxis:
$ nmap -sS -p 80 www.cyberciti.biz Salidas de la muestra: Starting Nmap 5.00 ( http://nmap.org ) at 2011-12-13 13:19 IST Interesting ports on www.cyberciti.biz (75.126.153.206): PORT STATE SERVICE 80/tcp open http Nmap done: 1 IP address (1 host up) scanned in 1.00 seconds Tambin te recomiendo que instalar y utilizar sniffer como tcpdupm y ngrep para probar la configuracin del firewall.
Conclusin:
Este mensaje slo una lista de reglas bsicas para los nuevos usuarios de Linux. Usted puede crear y construir reglas ms complejas. Esto requiere una comprensin adecuada de TCP / IP, optimizacin del kernel de Linux a travs de sysctl.conf, y un buen conocimiento de su propia configuracin. Mantngase atento a los temas siguientes: Stateful Packet Inspection. Uso de ayudantes de seguimiento de conexiones.
Traduccin de direcciones de red. Capa 2 de filtrado. Herramientas de pruebas de Firewall. Tratar con VPN, DNS, Web, Proxy, y otros protocolos.