You are on page 1of 23
aaa IPTABLES manual pracico, tural de iptables con semplos IPTABLES Manual practico 1.2 FROMGCONONINE % Paes puna CABLEVISION CLASICO © 12MESES FIBERTEL Wi-Fi OFF consuutanaut En este manual se muestran las habituales arquitecturas de redes con firevall y la forma de montar iptables para cada caso, con distintas opciones para cada ejemplo. 1.2 Revision: afiadidos los mismos casos pero con DROP por defecto. Por Pello Xabier Altadill zura Pello Altadill Ingeniero Informatico por la UPV-EHU hittp://www_pello info/forum/iptables (Actualizaciones y ejemplos en htip:/www.pello.info - VERSION PDF) 4. Qué es un firewall 2. Qué es iptables 3. Al grano: creando un firewall con iptables .1 Proteger la propia maquin: .2 Firewall de una LAN con wall de una LAN con n DMZ .4 Firewall de una LAN con salida a internet y VPN: 3.5 Firewalll puro y duro entre redes .6 Firewall con politica por defecto DROP el funcionamiento del firewall Enlaces, notas, autor 1. Qué es un firewall Un firewall es un dispositivo que fillra el tréfico entre redes, como minimo dos. El firewall puede ser un dispositivo fisico o un software sobre un sistema operativo. En general debemos verlo como una caja con DOS 0 mas interfaces de red en la que se establecen una regias de filtrado con las que se decide si una conexién determinada puede establecerse 0 no. Incluso puede ir més all y realizar modificaciones sobre las. comunicaciones, como el NAT. Esa seria la definicién genérica, hoy en dia un firewall es un hardware especifico con un sistema operativo 0 una IOS que fila el tréfico TCP/UDP/ICMP/.|P y decide si un paquete pasa, se modifica, se convierte o se descarta. Para que un firewall entre redes funcione como tal debe tener al menos dos tarjetas de red. Esta seria la tipologia clasica de un firewall FIREWALL INTERNET Esquema tipico de firewall para proteger una red local conectada a internet a través de un router. El firewall debe colocarse entre el router (con un tnico cable) ya red local (conectado al switch o al hub de la LAN) htpihwupalainfaleztirewallipisbes hel wea nino IPTABLESrrarual practic, tora deipabes con saplos Dependiendo de las necesidades de cada red, puede ponerse uno 0 més firewalls para establecer distintos perimetros de seguridad en tomo a un sistema. Es frecuente también que se necesite exponer algun servidor a internet (como es el caso de un servidor web, un servidor de correo, etc..), y en esos casos obviamente en principio se debe aceptar cualquier conexién a ellos. Lo que se recomienda en esa situacién es situar ese servidor en lugar aparte de la red, el que denominamos DMZ o zona desmilitarizada. El firewall tiene entonces tres entradas: FIREWALL iH DMZ En la zona desmillitarizada se pueden poner tantos servidores como se necesiten. Con esta arquitectura, permitimos que el servidor sea accesible desde internet de tal forma que si es atacado y se gana acceso a 61, la red local sigue protegida por el firewall. Esta estructura de DMZ puede hacerse también con un doble firewall (aunque como se ve se puede usar un tinico dispositivo con al menos tres interfaces de red). Seria un esquema como este: FIREWALL PREWALL HERNET ey Fusiswach HuBrSwites Duz LAN Sender Servidor way NAL. DMz Figur enquire troa ote 0 eal entre can na DMZ para seniors expuestoscando con dole snaps) Los firewalls se pueden usar en cualquier red. Es habitual tenerlos como proteccién de internet en las empresas, aunque ahi también suelen tener una doble funcién: controlar los accesos externos hacia dentro y también los intemnos hacia el exterior, esto titimo se hace con el firewall o frecuentemente con un proxy (que también utiizan reglas, aunque de mas alto nivel). También, en empresas de hosting con muchos servidores alojados lo normal es encontramos uno o mas firewalls ya sea filtrando toda la instalacién o parte de ella: htpihwupalainfaleztirewallipisbes hel 228 aaa IPTABLES manual pracico, tural de iptables con semplos Zona desprotegida ‘i * Ser{dor Senfioe Senfier Sanféor senvtor INTERNET Router a — FIREWALL Este podria ser el esquema de un ISP en el que se coloca el firewall para proteger determinados servidores como un servicio adicional, El firewall se pone en medio entre el resto de la red y la zona de servidores protegidos. Para llegar a estos servidores se tiene Senior Sorior Senior Servier Seror Servidor ww MAL que pasar por el firewall por narices. Zona protegida con firewall Sea el tipo de firewall que sea, generaimente no tendré mas que un conjunto de reglas en las que se examina elorigen y destino de los paquetes del protocolo tcp/ip. En cuanto a protocolos es probable que sean capaces de filtrar muchos tipos de ellos, no solo los top, también los udp, los icmp, los gre y otros protocolos vinoulados a vpns. Este podria ser (en pseudo-lenguaje) un el conjunto de reglas de un firewall del primer grafico: En definitiva lo que se hace es: - Habilita el acceso a puertos de administracién a determinadas IPs privilegiadas - Enmascara el trafico de la red local hacia el exterior (NAT, una peticién de un pc de la LAN sale al exterior con la ip ptiblica), para poder salir a intemet - Deniega el acceso desde el exterior a puertos de administracién ya todo lo que este entre 1 y 1024. Hay dos maneras de implementar un firewall: 1) Politica por defecto ACEPTAR: en principio todo lo que entra y sale por el firewall se acepta y solo se denegard lo que se diga explicitamente. 2) Poltica por defecto DENEGAR: todo esta denegado, y solo se permitira pasar por el firewall aquellos que se permita explicitamente. Como es obvio imaginar, la primera politica facilita mucho la gestién del firewall, ya que simplemente nos tenemos que preocupar de proteger aquellos puertos o direcciones que sabemos que nos interesa; el resto no importa tanto y se deja pasar. Por ejemplo, si queremos proteger una maquina linux, podemos hacer un netstat -In (0 netstat -an, o netstat -puta | grep LISTEN), saber que puertos estan abiertos, poner reglas para proteger esos puertos y ya esta. Para qué vamos a proteger un puerto que realmente nunca se va a abrir? El Gnico problema que podemos tener es que no controlemos que es lo que esta abierto, o que en un htpstwune peta intelztirewaliiptables rt a3 nino IPTABLESrrarual practic, tora deipabes con saplos momento dado se instale un software nuevo que abra un puerto determinado, o que no sepamos que determinados paquetes ICMP son peligrosos. Sila politica por defecto es ACEPTAR ynno se protege explictamente, nos la estamos jugando un poco. En cambio, sila politica por defecto es DENEGAR, ano ser que lo permitamos explicitamente, el firewall se convierte en un auténtico MURO infranqueable. El problema es que es mucho mas dificil preparar un firewall asi, y hay que tener muy claro como funciona el sistema (sea iptables 0 el que sea) y que es lo que se tiene que abrir sin caer en la tentacién de empezar a meter reglas super-permisivas. Esta configuracién de firewall es la recomendada, aunque no es aconsejable usarla si no se domina minimamente el sistema. Uno de los objetos principales de este documento es mostrar la forma de crear este tipo de firewalls. IMPORTANTE El orden en el que se ponen las regias de firewall es determinante. Normalmente cuando hay que decidir que se hace con un paquete se va comparando con cada regla del firewall hasta que se encuentra una que le afecta (match), y se hace lo que dicte esta regla (aceptar o denegar); después de eso NO SE MIRARAN MAS REGLAS para ese paquete. ; Cual es el peligro? Si ponemos reglas muy permisivas entre las primeras del firewall, puede que las siguientes no se apliquen y no sirvan de nada. 2. Qué es iptables IPtables es un sistema de firewall vinculado al kemel de linux que se ha extendido enormemente a partir del kernel 2.4 de este sistema operativo. Al igual que el anterior sistema ipchains, un firewall de iptables no es como un servidor que lo iniciamos 0 detenemos o que se pueda caer por un error de programacién(esto es una pequefia mentira, ha tenido alguna vulnerabilidad que permite DoS, pero nunca tendra tanto peligro como las aplicaciones que escuchan en determinado puerto TCP): iptables esta integrado con el kemel, es parte del sistema operativo. 4 Cémo se pone en marcha? Realmente lo que se hace es aplicar reglas. Para ellos se ejecuta el comando iptables, con el que afiadimos, borramos, o creamos reglas. Por ello un firewall de iptables no es sino un simple script de shell en el que se van ejecutando las reglas de firewall. Notas: bueno, para los mas geeks y tocapelotas. Vale, se puede implementar un script de inicio en Jete/rc.d/INIT.d (0 /etc/INIT.d ) con ei que hagamos que iptables se “inicie o pare" como un servidor mas. Lo podemos hacer nosotros o es probable que venga en la distribucién (como en redhat por ejemplo). También se pueden salvar las reglas aplicadas con el comand iptables-save en un fichero y gestionar ese fichero con na aplicacién o front-end desde la X o desde webmin. Vale, tenemos una maquina linux con soporte para iptables, tiene regias aplicadas y empiezan a llegarisalir/pasar paquetes. No nos liemos: olvidemos cuantas tarjetas de red hay, que direcciones ip tiene la maquina y olvidemos si el paquete entra o sale. Las reglas de firewall estan a nivel de kemel, y al kemel lo que le llega es un paquete (digamos, un marron ;) )y tiene que decidir que hacer con él. El kemel lo que hace es, dependiendo si el paquete es para la propia maquina o para otra maquina, consultar las reglas de firewall y decidir que hacer con el paquete segtin mande el firewall. Este es el camino que seguiria un paquete en el kemet: _ N XN 7 > | Formato | > ( pear, ONATSSN, VW Vy \ wneut | by ns) —S V eo htpihwupalainfaleztirewallipisbes hel 48 aaa IPTABLES manual pracico, tural de iptables con semplos Como se ve en el grafico, basicamente se mira si el paquete esta destinado a la propia maquina o si va a otra. Para los paquetes (0 datagramas, segtin el protocolo) que van a la propia maquina se aplican las reglas INPUT y OUTPUT, y para filtrar paquetes que van a otras redes o maquinas se aplican simplemente reglas FORWARD. INPUT,OUTPUT y FORWARD son los tres tipos de reglas de filtrado. Pero antes de aplicar esas regias es posible aplicar reglas de NAT: estas se usan para hacer redirecciones de puertos 0 cambios en las Ps de origen y destino. Veremos ejemplos. E incluso antes de las regias de NAT se pueden meter reglas de tipo MANGLE, destinadas a modificar los Paquetes; son reglas poco conocidas y es probable que no las usen. Por tanto tenemos tres tipos de reglas en iptables: -MANGLE, - NAT: reglas PREROUTING, POSTROUTING - FILTER: reglas INPUT, OUTPUT, FORWARD 3. Al grano: creando un firewall con iptables. En este tutorial se ha intentado dar una breve introduccién sobre lo que es un firewall, sus tipologias basicas yen conereto se presenta el sistema iptables, Pero vamos al grano y empezamos a ver configuraciones de firewall con iptables, empezando desde la mas basica a las mas complejas, en las que se establece la denegacién como politica por defecto. Nota: se recomienda encarecidamente ir practicando estas reglas en alguna maquina linux disponible, y especialmente hacer uso de la herramienta iptraf para depurar y comprobar el funcionamiento de iptables. Con iptraf podemos comprobar si las conexiones TCP/IP se llegan a establecer o no. Una conexién tep/ip empieza con el three-way-handshake: -La maquina que desea conectarse a otra envia un paquete con flan SYN Sila otra maquina acepta, envia un SYNACK -Entonces la maquina establece la conexién. Si el firewall esta denegando la conexién, con iptraf veremos que la maquina origen solo manda paquetes con el flan S (de SYN), y que del otro lado no sale nada. Saber usar iptraf nos ayudara mucho. 3.1 Proteger la propia maquina Muy bien, tenemos una maquina linux pinchada en internet y queremos protegerla con su propio firewall. Lo nico que tenemos que hacer es crear un script de shell en el que se van aplicando las reglas. Los scripts de iptables pueden tener este aspecto: Ojo con el orden de las reglas! htpihwupalainfaleztirewallipisbes hel 523 aaa IPTABLES manual pracico, tural de iptables con semplos Nota para freaks y geeks: siili, que ya lo se, se puede mejorar este script usando variables, se puede poner el comando con el path completo, pero limitense a hacer copy-paste. Para el resto de mortales, no olvidarse de ponerle flags de ejecucién: chmod +x firewall sh o chmod 750 firewall sh En fin, ya se ve, un script de los mas simple, con unas pocas reglas con las que cerramos puertos al puiblico a los que no tienen porque tener acceso, salvo el 80. Pero cualquiera con algo de ojo se habrd dado cuenta de que ni se filtra el UDP ni el ICMP. Apostaria cualquier cosa a que el sistema tiene algin puerto udp abierto, y ademas peligroso como el SNMP. Como he dicho anteriormente, en este tipo de firewall es recordable hacer un netstat para ver que puertos estan en estado de escucha (abiertos), y salve que un rootkit nos haya modificado los binarios, netstat nos dard la informacién precisa que necesitamos. Hay gente que se decanta por hacerse un nmap asi mismos. Cuidado: dependiendo de como lo ejecutemos quizé no nos muestre todos los puertos, ya que suele mirar los bien conocidos. Imaginemos que hemos dado un repaso a nuestro sistema, y ahora si que tenemos mejor identificados los puertos tep y udp abiertos. Pero por si acaso nos curamos en salud y al final del script cerraremos el rango de puertos del 1 al 1024, los reservados tanto para top como udp. htpihwupalainfaleztirewallipisbes hel 2a zo IPTABLES manual practico, tural de iptables con ejaplos iptabies “A INPUT ~p Lep ~-dport 1:1024 =) TROP éSencillo, no? Ahora basta con hacer copy-paste de estas reglas y aplicarlas y ajustarlas en su sistema (quiz4s uses PostgreSQL). Si tiene miedo de perder el control de una maquina remota, pruebe el script en una maquina local y asegiirese de que aplica lo que usted quiere. Funcionar va a funcionar seguro. -Versién con DROP por defecto Vale, queremos que nuestra maquina sea inexcrutable y que solo tenga abierto un puerto imprescindible para dar determinado servicio. Con DROP por defecto se protege la maquina perfectamente, aunque hay que affadir algunas reglas para que la propia maquina sea capaz de salir a internet ,, Para qué? hombre, Porque la maquina necesita actualizaciones, consultar DNS por udp, sacar correo etc, Veamos un posible script: fe Scet27 de zezabLE9 - cJexpio det manuel de tptables Hh sooe.polis-snfo ~ pollegpelle.snfe 4 fore 9 el servicio que A 1a saquina @ internet, por tanto todo paquete a Ianseripesblea =n 180? =p tcp om top ~-dpart BO =! ACCEPT ipa Sp tse on top svapert 60 om state ~-etare RELATED, SSUARLISHED ~5 aCcEe? ee ae acepta para 4 xa tanbton a wops soguras Jevsn/ipesblea “h i850 =p cop Japsn/ipeables “A OUTPUT =p {abin/iptables -& INPUT t yort 20:21 ~m etate state RELATED, ESTABLISHED ~) ACCEIT faninr iptables oh OOTFOT wa 211,95.64.39 =p udp = a) 3 211,95.64.39 ~p udp -m udp —aport $3 ~j ACCEPT ripart $9 =] ACCEPD Iansr/spesblea =A NEUE (Yaese/ipeables “A COTE? 4 eersitinos consulter el reloj de hora.redizis.es (un penttun26s) para sincronizerse htpihwupalainfaleztirewallipisbes hel 128 aaa IPTABLES manual practi, tural dept 3.2 Firewall de una LAN con salida a internet Ahora vamos a ver una configuracién de firewall iptables para el tipico caso de red local que necesita salida a intemet. FIREWALL Qué es lo que hace falta? Obviamente, una regia que haga NAT hacia fuera (enmascaramiento en iptables), con lo que se haria dos veces NAT en el firewall y en el router. Entre el router y el firewall lo normal es que haya una red privada (192.168.1.1 y 192.168.1.2 por ejemplo), aunque dependiendo de las necesidades puede que los dos tengan IP publica. El router se supone que hace un NAT completo hacia dentro (quiz salvo puerto 23), 0 sea que desde el exterior no se llega al router si no que de forma transparente se "choca" contra el firewall. Lo normal en este tipo de firewalls es poner la politica por defecto de FORWARD en denegar (DROP), pero eso lo vemos més adelante. \Veamos como seria este firewall-gateway: htpihwupalainfaleztirewallipisbes hel zo IPTABLES manual practico, tural de iptables con ejaplos Pero como somos muy malvados queremos que los empleados solamente puedan navegar por internet, denegando el acceso a Kazaa 0 edonkey. Esta seria una configuracién simple pero efectiva, 4H Schie? de IPrARLES - ejonplo del manwal de teeables 10 =n ApLicando Reglas de Firevali ({sbin/iptables -A INPUT ~! to -) ACcET jesetes s sya Eptapies “A FORKARD 1 12.168.10.0/24 4 ath -p top —-dport #0 3 Act TR PORKARD 2 192.168.20.0/24 -1 thi -p top fs 1921168.10.0/24 21 thi -P usp port 93 -) accERT 4 y activanos «2 BIT DE FORNARDING (inpreseindibte!! 11!) Sele 2 > fpcociaye/net/spet/ip.fonward 4 Mota: 0.0,0,0/0 significa: cualquier red Supongamos que este firewall tiene alguna funcién adicional: es un servidor proxy y ademas es un servidor de correo, Darle funcionalidades de este tipo a un firewall no es recomendable, porque si no se protegen bien esos puertos o si no esta actualizado el software pueden entrar en el firewall a base de xploits comprometiendo TODA la red local. De todas formas muchas empresas no se pueden permitir ono quieren tener una maquina para cada cosa, bastante les cuesta a muchas poner un firewall. Por tanto: si se afiaden servicios que deben estar abiertos al publico en el propio firewall, nos la estamos jugando, y se recomienda pasar el servicio a otra maquina y ponerla en la DMZ, Supongamos también que la empresa tiene comerciales en ruta y que se conectan a internet desde su htpihwupalainfaleztirewallipisbes hel 923 zo IPTABLES manual practico, tural de iptables con ejaplos portatil y con una ip dinémica. Supongamos también que el jefe de la empresa quiere acceder a la red local desde casa con una conexin ADSL. Ahora en el firewall debieramos tener instalado un servidor SMTP, pop3, yun PPTPD. fe scet97 de rezapies ~ ejespio det manual de iptables [ptabies “A INDUT -» 9,0.0.0/0 =p tep Fomwar> + 192.168-10.0/24 =i ath 352 ,266110,0/24 = wth 93-3 acest BIT DE FORWARDING (inprescindibie!!!1!) Ines /spea/sp forward 4 corramos el puesto dei eozvicle PPT, sole abierto para el jefe iptables “A INPUT "5 9.0.0,0/0 "1 ethO =p top ~-aport 1723 "2 DROP iMas dificil todavia! Ahora queremos compartir algiin servicio pero de un servidor que tenemos dentro de la red local, por ejemplo el IS de un servidor windows2000, y ademas permitirla gestién remota por terminal server para esta maquina para una empresa externa. En este caso lo que hay que hacer es un redireccién de puerto. Antes de htpihwupalainfaleztirewallipisbes hel 1028 zo IPTABLES manual practico, tural de iptables con ejaplos iptables esto se podia hacer facilmente con un servidor como rinet. Rinet lo que hace es simplemente abrir un puerto en el firewall y al conectarse a él te lleva hasta el puerto de otra maquina, como una tuberia. Con iptables podemos hacer redirecciones con una ventaja: no perdemos la informacién de IP origen, cosa que con rinet si ocurria. En fin, veamos la configuraci6n, con las nuevas reglas de DNAT: 44 con sarvicios ablorsos ae puerto 25, 110, y 2123 4H soon.pelis-snfo ~ pelledpelle.info sport 80 ~ ONAT ~-to 192.168.20.12:60 iptables “nat -8 PRERSUTING “9 221.29.124.181 -£ oth0 -p top sport 3989 ~t OWAT ~-t0 182.168.10.1219988 pore 150-7 ACCEPT M4 al exterior, cono ae expLica antes, a loa paquetes que no van dirigidos al iptables -A PORMARD ~2 152.168.10.0/24 -i ethi Fomwaro ~+ 192.168.10.0/24 ~s otha 4 y activanos ob BIT DE FORWARDING (inproscindibio!!11t) 810.070 ~i etho ~p scp s-eport 1763 =) OOP htpihwupalainfaleztirewallipisbes hel wea aaa IPTABLES manual pracico, tural de iptables con semplos Bueno ya tenemos montada la red, pero conviene insistir en que esta titima configuracién, con las redirecciones y los servicios de correo funcionando en el firewall es bastante insegura. {Qué ocurre si hackean el servidor IS de la red local? Pues que el firewall no sirve de gran cosa, lo poco que podria hacer una vez se ha entrado en la red local es evitar escaneos hacia el exterior desde la maquina atacada, aunque para ello el firewall debiera tener una buena configuracién con denegacién por defecto. Si necesitamos ese servidor IIS, basta con comprar una tarjeta de red por 6€ 0 dolares y crear una DMZ. 3.3 Firewall de una LAN con salida a internet con DMZ Bueno, esto se va complicando. Imaginemos que tenemos una red parecida a la anterior pero ahora hacemos las cosas bien y colocamos ese servidor IS en una DMZ: FIREWALL LAN: 192.168.10.024 INTERNET Router 192.108.1.1 eb 192,166.12 fmm etn 192.168.101 Rula por defecto del firewall a 192.168.1.1 aaa Ruta por defecto do la lan: eqs 192.168.10.1 Ruta por defecto en la DMZ: DMz: 192.168.3.1 192.168.3.0124 En este tipo de firewall hay que permitir - Acceso de la red local a intemet. - Acceso pliblico al puerto top/80 y tep/443 del servidor de la DMZ - Acceso del servidor de la DMZ a una BBDD de la LAN - Obviamente bloquear el resto de acceso de la DMZ hacia la LAN. Qué tipo de reglas son las que hay que usar para fittrar el trafico entre la DMZ y la LAN? Solo pueden ser las FORWARD, ya que estamos filrando entre distintas redes, no son paquetes destinados al propio firewall. htpihwupalainfaleztirewallipisbes hel v8 aaa IPTABLES manual pracico, tural de iptables con semplos Vamos a ver: si las maquinas de la DMZ tienen una ip publica hay que tener muchisimo cuidado de no permitir el FORWARD por defecto. Si en la DMZ hay ip piblica NO ES NECESARIO HACER REDIRECCIONES de puerto, sino que basta con rutar los paquetes para llegar hasta la DMZ. Este tipo de necesidades surgen cuando por ejemplo tenemos dos maquinas con servidor web (un apache y un IS); A cual de las dos le redirigimos el puerto 80? No hay manera de saberlo (No, con servidores virtuales tampoco, piénsalo), por eso se deben asignar IPs publica o en su defecto usar puertos distintos. Por tanto hay que proteger convenientemente toda la DMZ. Tampoco haria falta enmascarar la salida hacia el exterior de la DMZ, si tiene una ip ptblica ya tiene una pata puesta en intemet; obviamente hay que decirle al router como llegar hasta esa ip publica. Asi podria ser esta red: FIREWALL WIERNET Rover LAN: 192.188.10.0/24 0.7 120.42 Ruta por defecto del firewall. 80.37.120.42 En la DMZ tenemos un red de IP Ruta por defecto de la lan: axz1ess0s2 | piblica con cuatro Ips (el minima): 192.168.10.1 }- La red: 212.194.869.150 Red de DMZ: 212 194 89.150 |- El gateway: 212.194.89.151 Mask de DM2: 255.255.255.253 | 4) saewa aenian | Sma Z1sten4a,o2 Ruta por defecto en la DMZ: “ 212.194,89.151 J] sasnov I} maquina por tanto’ 212.194.89,150/30 htpihwupalainfaleztirewallipisbes hel rama aires IPTABLES manual practico, tural de iptables con ejaplos ffein/sn 4 Ejenpio de script pu 44 pero con Ps pablics Hf Pollo xabter Altadill czar 4H cope polis-snfo ~ pollegpelle.:nte iptables =P INPUT ACCEPT 4 BL Locatnost se deia (por ejemplo conexto: Jobin/ipeables oh thiur =. Le =) AccEST fy activane ©” BIT DF FORMAROING (inproseinaibie! 1311) 4 gue otrae aaguines pueden gall a Ueaves del firevall. echo 2 > iproc/sye/net/peasip forward 44 Pormiinos <1 accose desde ol exterior a los puertos 80 y 443 do OMe 44 Permitinos 21 paso de 2a DMZ a una BBOD de 1a zat: [peables “A FORWAR =+ 217,194.89,132 = 192,168.10,3 ~p top —eport 5632 ~} ACCEPT p ~sport 5432 ~) xceee 4 pernitines abeir el Terminal server de a OMZ desde 1a TAN iptables “A FORWARD Te 192,168,20.0/24 =d 212,194,89.152 ~p top —eport 10241655395 —dport 3989 ~} ACCEET iptables “A FORWARD ~2 212,194.89.152 ~d 192.266.10.0/24 ~) DROP vote: 0.0.0-0/0 significa: cualquier res “ 4 cezranos 1 zange de puerto bier eanoeide iptables “A INPUT =2 9.0.0,0/0 ~p top ~dport 12024 ~} ono speables “A INPUT “= 9.0.0,0/0 “p udp wdport 1:2024 =3 9ROP fein dea script ATENCION Merece la pena pararse a explicar esta parte del firewall: |W pormitinos abeLe 1 Terminal server de ia 0M2 desde 1a LAK [peabies “A FORWARD =s 152,168.10.0/24 = 217.198.89.152 ~p top sport 1024165535 ~-dport 3389-3 AccHPT sdpoet 1024265535 ~j nccEEE 213.194.89,182 "4 192.268.30,0/28 =) oRoP Lo que nos lleva a dos cuestiones: htpstwne peta intalztirewaliiptables rt vas nino IPTABLESrrarual practic, tora deipabes con saplos {Por qué hay que explicitar la abertura en uno y otro sentido? Porque la tercera regia cierra todo lo que va de la DMZ ala red local. Para abrir el puerto 3389 de tep es imprescindible que un paquete de ida sea capaz de llegar hasta la DMZ y que a su vez pueda volver a la LAN. Esto de tener que especificar la abertura en uno y otro sentido sera el pan de cada dia en un iptables con poltica DROP por defecto: mejor proteccién pero mas trabajo. 4Por qué se explicita el puerto de origen/destino 1024:65535 en la primera y segunda regia? Imaginemos que un hacker logra acceso a la maquina de la DMZ, Si no especificamos el puerto de destino en esas dos reglas, el hacker puede abrir CUALQUIER puerto de la LAN siempre que pueda establecer como puerto origen suyo el tep/3389, cosa facil para un hacker que sepa algo de C o que tenga el programa perfinente a mano, De todas formas el hacker tendria que saber que existe ese tipo de reglas, si es listo probara con puertos de gestién o con puertos netbios. El problema es que se deja un vinculo con la LAN bien para administrarlo remotamente o para establecer relaciones de confianza y ahi es donde reside el peligro. Enlas conexiones “legales" no se usa como puerto origen nada por debajo de! 1024; cuando alguien se conecta a otro puerto en su extremo abre un puerto por encima del 1024. Especificandolo enla regla de firewall protegeremos un poco mejor la LAN, aunque los puertos por encima de 1024 estaran en peligro. 3.4 Firewall de una LAN con salida a internet y VPNS. En principio este caso no nos tendria que dar mayor problema, aunque la primera vez que lo montemos, el enmascaramiento nos jugaré una mala pasada. Por eso conviene echar un vistazo en este caso. CENTRAL rirewaut LAN: 192.168.10.0/24 Hoe Router 192.1680. eho 192,168.02 TUNEL Ro LAN: 192.166.20.0/24 nice DELEGACION 1 19218820, DELEGACION 2 igus 8 quire ete ed oa inet con zna ONE y delguoa qe accede 8 ONE Supongamos que entre los routers ya se ha establecido un tunel (con Ciscos se haria creando un interfaz Tunnel), y que si el firewall nos deja podriamos llegar de la central a las delegaciones y viceversa usando las IPs privadas. Vaya que se puede hacer un ping desde la central a 192.168.30.xy nos responde. Para ello es imprescindible que el router de la central tenga una ruta metida para llegar a 192.168.10.0/24 y por supuesto cada una ruta para cada delegacién. Antes de meterse en el firewall hay que asegurar la visibilidad entre los routers y poder llegar a sus IPs privadas haciendo ping. ‘Supongamos también que en la central esta el servidor de correo que légicamente debe tener el puerto 25 accesible desde intemet, y debe ser accesible desde las delegaciones para puerto 25, 110 (pop3) 0 143(imap). La salida a internet (web, fip, etc..) cada uno la hace por su lado. Veamos una posible configuraci6n para este caso. pina palainfaileztirewallipisbes rel 1928 areas IPTABLES manual practico, tural de iptables con ejaplos 44 ScRIOT do rPzABLES ~ sjonplo dol manval do iptables 44 wnw,pelio,into ~ pelloépello.into fecho =n Apiicando Reglas de Fizevall, iptables F Eplabies “nat -P POSTROUTENG ACCEPT 44 Notas cond ea ol invertaz conectada al roster y eth a 1a tAY 4 todo lo que venga por ei intertar del router tetn®) y vaya al 159 [plabiee ~r nat “A PRERGUTING =z 192.168.20.0/24 -1 thd \, Sp tep <-dport 210 =} ONAT ~-to 182.168.3.2/110 4 todo lo que venga por ol intertar del router (eth) y vaya al 1:0 Eptapien ~» nat “A PRERGUSING =e 192.768.20-0/24 -2 ethD \ Sp tap seaport 243 =) BNAT ~-to 192.168.3,2:143 sptabies “t nat =A PREROUTING ~# 192.268,30,0/24 =1 thd \ cp Top srapore 288 =] oNAT ==e9 192. 168.3,20148 £2 tocatnast ae deja (por ejenpl> coneeiones iscales 9 sysat) fy activanse e: DIP DE FORMARGING (Inpzeseindtbie! 11!) Aptables -2 nat -A POSTROUTING ~8 192.168,20.0/24 0 ethO ~1 MASQUERADE rabies oF nat Ok POSTROUNING “e 192.168,9,0/24 =o ath ~) MASQUERADE 4 vara que deade Le red local oe alga acta tuere hay que EXMASCARAR 4 pero due paaa con as delegaciones ‘anblen estan fuera ¥ NO AAY QUE Eptabies “nh FORKARO 2 192,168.10.0/24 ~d 392.168.20.0/24 =) AccERT Sptabies “A FORKARD a 192,168.200/24 = 192,168.10.0/24 } ACCEPT tables “A FORWARD 5 197.168.10.0/24 ~d 397.188.30.0/24 =) AccEPT Epeabies “A FORWARD = 192. 168.30.0/24 -4 92. 168.10.0/24 -} ACCEPE [peables “A FORNARD ~s 192-16B.10.0/24 —d "82-168.9.0/28 -} ACHP Satga.iee.10.0/24 =] AceRPE sptables “A FORWARD 1 192.168.3.0/26 -p top Pe 192. 168-10.0/24--3 aceRPr htpihwupalainfaleztirewallipisbes hel 1823 aaa IPTABLES manual pracico, tural de iptables con semplos Se han remarcado en negrita las reglas FORWARD entre IPs privadas de delegaciones, ya que sin esas reglas y con el enmascaramiento de por medio no se podria acceder a las delegaciones. Cabe resaltar que entre delegaciones no hay visibilidad total, solamente la central veria a todas las demas, y las delegaciones solamente la central. La delegaciones accederian al servidor de correo con una redireccién, 0 sea que ellos se configurarian el servidor de correo como 192.168.10.1, mientras que desde la LAN se accederia directamente. Se puede hacer de distintas maneras. Lo interesante seria poner ese firewall con DROP por defecto, se tratard de mostrar esa configuracién al final. 3.5 Firewall puro y duro entre redes Eneste caso olvidémonos de redes locales y de NAT. Aqui solo tendremos reglas de fitrado INPUT y FORWARD. Pongamos que tenemos el siguiente escenario: Zona desprotegida IyeRNET rower Senko: Senior Senkior sentir Senior sexfor FIREWALL En este caso el firewall 211.34.1491 tendré reglas de protecién para si mismo (puertos de administracién de firewall) con regias INPUT y por otro = lado reglas FORWARD para proteger ios servidores. El Gateway de los servidores seré el firewall: Serie senior senor svir soior sever 211.34.149.1 wy MAL “IRC NEWS = BB CTRIX a2 493 anda Zona protegida con firewall En el firewall debemos indicar una serie de reglas para proteger los equipos que estan al otro lado de este htpihwapalainfaleztirewllipsbes hel wea nino IPTABLES manual rocco, eral deiptables con seplos dispositivo, todos ellos de la red 211.34.149.0/24 Cada uno de ellos da un servicio determinado, y puede estar gestionado desde distintas IPs, lo que significa que habra que dar acceso a determinados puertos de gestién (22, 3389, etc... Este podria ser el aspecto del script del firewall 46 woos.polis.inf0 ~ pelloipelle.into Sptabies “A INPUT ve 210-299,55.19 9) AOCEET Iptabies “A FORWARD -d 212,34.149.4 =p Lep ~-dpoct 666626568 ~j ACCP? ptabies “A FORWARDS =7'210,195.55.15 =a 215,98,249,4 -p top --dport 22 htpihwupalainfaleztirewallipisbes hel aa aaa IPTABLES manual pracico, tural de iptables con semplos Con esta firewall y sobretodo gracias a las reglas de DROP que metemos tras especificar lo que dejamos abiertos, protegeremos de manera eficaz todos lo puertos abiertos de las maquinas. 3.6 Firewall con politica por defecto DROP Aqui llega la seccién para los auténticos administradores de pelo en pecho. {Qué supone el hecho de establecer como poltica por defecto la denegacion? " Se debe explicitar cada conexién permitida en los dos sentidos. ” Se debe conocer perfectamente qué debe estar abierto y qué no. " Es muchos mas dificil de mantener y si se hace conviene hacerlo desde el principio. " No todo es mas trabajo: también supone un firewall mucho mas seguro. En el ejemplo de la DMZ ya se presentaba esta situacién en las regias forward de una a otra red. Para ilustrar el DROP por defecto, vamos a mostrar la configuracién del ejemplo anterior de firewall entre redes pero con politica por defecto DROP. htpihwupalainfaleztirewallipsbes hel 1928 zo IPTABLES manual practico, tural de iptables con ejaplos Aptables -R FORKARD ~¢ 212.34.149, Lop “A PORKARO 2 212.34,149.3 -d 220,195.95.28 -p tep ~-aport 22 -1 ACCEPT iptables ©R FORKARO =#'210.195.55.15 =4 213,98.289.4 =p tep ==dport 22 =1 ACCEPT B42 -d 221.36.148.7 =p top Aptables “A FORNARD 2 195.58. sees ~) accent Ya esta, hemos levantado un verdadero muro entre intemet y el conjunto de servidores que esta Tras el firewall. No se puede ni hacer un ping a las maquinas, salvo que se haya dado acceso total a una ip. Si quisieramos dar acceso al ping, pondriamos algo ast Es més llevadero aplicar el DROP por defecto cuando el firewall es para la propia maquina. El primer escenario de esta manual trataba sobre este caso, ahora lo revisamos con la politica por defecto drop. 4H SCRIOT de rPrABLES ~ ejexplo det manval de tptables 4 Eomple de script para protogor 1a propia maquina htpihwupalainfaleztirewallipisbes hel zoe aaa IPTABLES manual pracico, tural de iptables con semplos 4. Cémo depurar el funcionamiento del firewall Programas tiles IPTRAF. Sin duda alguna uno de los programas mas practicos para depurar el firewall es iptables, ya que con el podemos observar si la conexiones se establecen o no; es un programa de consola que es aconsejable controlar ya que muestra en tiempo real el trafico que atraviesa nuestra maquina con todo lujo de detalles: origen/destino de ips y puertos, trafico total o trafico total segtin el interfaz de red, etc... Si vemos muchas conexiones simultaneas y nos perdemos, existe la posibilidad de aplicar filtros para captar solo aquello que nos interesa NMAP. La herramienta para escanear puertos por excelencia, rechace imitaciones. Es una herramienta de consola répida, efectiva y con multitud de opciones. Podemos usarla desde maquinas ajenas a nuestra red para comprobar si realmente el firewall esta filtrando correctamente y en cierta manera para hacemos una idea de que "visién’ pueden tener los hackers de nuestro sistema. SHELL. En el propio script del firewall podemos afadir algunas opciones para descubrir fallos de sintaxis en las reglas. Claro, imaginemos que tenemos un firewall de 40 lineas y una de ellas falla cuando ejecutamos el script. {Cual es? Es probable que el mensaje de error no aclare lo suficiente, por eso se puede afiadir algo asial final de cada regla: htpihwupalainfaleztirewallipisbes hel wea nino IPTABLES manual rocco, eral deiptables con seplos Si la regla se ejecuta bien mostrara el mensajito de ok Otra opcién algo mas cutre seria ir eliminando 0 comentando regias hasta dar con a regla que tiene la sintaxis incorrecta. Cabe resefiar que puede fallar una regla, pero a partir de ella el resto se ejecutan con normalidad. Enlaces: -Pagina oficial: http://www netfiter.ora Bibliografia Building intemet firewalls: todo un clasico -Otros tutoriales: En la propia web de netiiter-iptables tenemos el enlace a otros tutoriales, aunque todos ellos estan en perfecto inglés. Ejem, iptables en 21 sequndos, del mismo autor que este. Notas: Este manual se ha desarrollado para mostrar el uso de iptables desde configuraciones simples a mas complejas. Se ha elaborado con el conocimiento adquirido a base de tortas por tanto se basa en la experiencia propia. Necesita continua revisién. Autor: Pello Xabier Altadill ura Ingeniero en Informatica por la UPV-EHU (hito:/www.ehu.es) En su dia tuvo entre sus manos el marrén de la seguridad en IBERCOM (hito:/mww.ibercom.com ), un isp que no solo sobrevive al temporal, sino que se permite el lujo de no parar de crecer. Si tienes alguna duda,asa por el foro de iptables: URL: hitp:/Amww pello info/forum/iptables htpihwupalainfaleztirewallipisbes hel 28 aaa IPTABLES manual pracico, tural de iptables con semplos Volver arriba © Pello Xabier Altadill kura . www.pello.info htpihwupalainfaleztirewallipisbes hel zea

You might also like