Está en la página 1de 30

1.

Qu es un firewall
Un firewall es un dispositivo que filtra el trfico entre redes, como mnimo dos. El firewall puede
ser un dispositivo fsico o un software sobre un sistema operativo. En general debemos verlo como
una caja con !" o mas interfaces de red en la que se establecen una reglas de filtrado con las que
se decide si una cone#i$n determinada puede establecerse o no. %ncluso puede ir ms all & reali'ar
modificaciones sobre las comunicaciones, como el ()*.
Esa sera la definici$n genrica, +o& en dia un firewall es un +ardware especifico con un sistema
operativo o una %!" que filtra el trfico *,-.U-.%,/-....%- & decide si un paquete pasa, se
modifica, se convierte o se descarta. -ara que un firewall entre redes funcione como tal debe tener
al menos dos tarjetas de red. Esta sera la tipologa clsica de un firewall0
1igura 10 esquema de firewall tpico entre red local e internet
Esquema tpico de firewall para proteger una red local conectada a internet a travs de un router. El
firewall debe colocarse entre el router 2con un 3nico cable4 & la red local 2conectado al switc+ o al
+ub de la 5)(4
ependiendo de las necesidades de cada red, puede ponerse uno o ms firewalls para establecer
distintos permetros de seguridad en torno a un sistema. Es frecuente tambin que se necesite
e#poner alg3n servidor a internet 2como es el caso de un servidor web, un servidor de correo, etc..4,
& en esos casos obviamente en principio se debe aceptar cualquier cone#i$n a ellos. 5o que se
recomienda en esa situaci$n es situar ese servidor en lugar aparte de la red, el que denominamos
/6 o 'ona desmilitari'ada. El firewall tiene entonces tres entradas0

1igura 70 esquema de firewall entre red local e internet con 'ona /6 para servidores e#puestos
En la 'ona desmilitari'ada se pueden poner tantos servidores como se necesiten. ,on esta
arquitectura, permitimos que el servidor sea accesible desde internet de tal forma que si es atacado &
se gana acceso a l, la red local sigue protegida por el firewall. Esta estructura de /6 puede
+acerse tambin con un doble firewall 2aunque como se ve se puede usar un 3nico dispositivo con al
menos tres interfaces de red4. "era un esquema como este0

1igura 80 esquema de firewall entre red local e internet con 'ona /6 para servidores e#puestos
creado con doble firewall2permetro4
5os firewalls se pueden usar en cualquier red. Es +abitual tenerlos como protecci$n de internet en
las empresas, aunque a+ tambin suelen tener una doble funci$n0 controlar los accesos e#ternos
+acia dentro & tambin los internos +acia el e#terior9 esto 3ltimo se +ace con el firewall o
frecuentemente con un pro#& 2que tambin utili'an reglas, aunque de ms alto nivel4.
*ambin, en empresas de +osting con muc+os servidores alojados lo normal es encontrarnos uno o
ms firewalls &a sea filtrando toda la instalaci$n o parte de ella0
1igura :0 esquema de firewall entre redes, en la que solo se filtra & no se +ace ()*
"ea el tipo de firewall que sea, generalmente no tendr mas que un conjunto de reglas en las que se
e#amina el origen & destino de los paquetes del protocolo tcp.ip. En cuanto a protocolos es probable
que sean capaces de filtrar muc+os tipos de ellos, no solo los tcp, tambin los udp, los icmp, los gre
& otros protocolos vinculados a vpns. Este podra ser 2en pseudo;lenguaje4 un el conjunto de reglas
de un firewall del primer grfico0
-olitica por defecto ),E-*)<.
*odo lo que venga de la red local al firewall ),E-*)<
*odo lo que venga de la ip de mi casa al puerto tcp 77 ),E-*)<
*odo lo que venga de la ip de casa del jefe al puerto tcp 1=78 ),E-*)<
*odo lo que venga de +ora.rediris.es al puerto udo 178 ),E-*)<
*odo lo que venga de la red local & va&a al e#terior E(/)",)<)<
*odo lo que venga del e#terior al puerto tcp 1 al 1>7: E(E?)<
*odo lo que venga del e#terior al puerto tcp 88@A E(E?)<
*odo lo que venga del e#terior al puerto udp 1 al 1>7: E(E?)<
En definitiva lo que se +ace es0
; Babilita el acceso a puertos de administraci$n a determinadas %-s privilegiadas
; Enmascara el trafico de la red local +acia el e#terior 2()*, una petici$n de un pc de la 5)( sale al
e#terior con la ip p3blica4, para poder salir a internet
; eniega el acceso desde el e#terior a puertos de administraci$n & a todo lo que este entre 1 &
1>7:.
Ba& dos maneras de implementar un firewall0
14 -oltica por defecto ),E-*)<0 en principio todo lo que entra & sale por el firewall se acepta &
solo se denegar lo que se diga e#plcitamente.
74 -oltica por defecto E(E?)<0 todo esta denegado, & solo se permitir pasar por el firewall
aquellos que se permita e#plcitamente.
,omo es obvio imaginar, la primera poltica facilita muc+o la gesti$n del firewall, &a que
simplemente nos tenemos que preocupar de proteger aquellos puertos o direcciones que sabemos
que nos interesa9 el resto no importa tanto & se deja pasar. -or ejemplo, si queremos proteger una
mquina linu#, podemos +acer un netstat ;ln 2o netstat ;an, o netstat ;puta C grep 5%"*E(4, saber
que puertos estn abiertos, poner reglas para proteger esos puertos & &a est. D-ara qu vamos a
proteger un puerto que realmente nunca se va a abrirE
El 3nico problema que podemos tener es que no controlemos que es lo que esta abierto, o que en un
momento dado se instale un software nuevo que abra un puerto determinado, o que no sepamos que
determinados paquetes %,/- son peligrosos. "i la poltica por defecto es ),E-*)< & no se
protege e#plcitamente, nos la estamos jugando un poco.
En cambio, si la poltica por defecto es E(E?)<, a no ser que lo permitamos e#plcitamente, el
firewall se convierte en un autntico /U<! infranqueable. El problema es que es muc+o ms
difcil preparar un firewall as, & +a& que tener mu& claro como funciona el sistema 2sea iptables o
el que sea4 & que es lo que se tiene que abrir sin caer en la tentaci$n de empe'ar a meter reglas
super;permisivas.
Esta configuraci$n de firewall es la recomendada, aunque no es aconsejable usarla si no se domina
mnimamente 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 reglas de firewall es determinante. (ormalmente cuando +a& que
decidir que se +ace con un paquete se va comparando con cada regla del firewall +asta que se
encuentra una que le afecta 2matc+4, & se +ace lo que dicte esta regla 2aceptar o denegar49 despus
de eso (! "E /%<)<F( /F" <E?5)" para ese paquete. D,ul es el peligroE "i ponemos reglas
mu& permisivas entre las primeras del firewall, puede que las siguientes no se apliquen & no sirvan
de nada.

7. Qu es iptables
%-tables es un sistema de firewall vinculado al Gernel de linu# que se +a e#tendido enormemente a
partir del Gernel 7.: de este sistema operativo. )l igual que el anterior sistema ipc+ains, un firewall
de iptables no es como un servidor que lo iniciamos o detenemos o que se pueda caer por un error
de programaci$n2esto es una pequeHa mentira, +a tenido alguna vulnerabilidad que permite o",
pero nunca tendr tanto peligro como las aplicaciones que escuc+an en determinado puerto *,-40
iptables esta integrado con el Gernel, es parte del sistema operativo. D,$mo se pone en marc+aE
<ealmente lo que se +ace es aplicar reglas. -ara ellos se ejecuta el comando iptables, con el que
aHadimos, borramos, o creamos reglas. -or ello un firewall de iptables no es sino un simple script
de s+ell en el que se van ejecutando las reglas de firewall.
(otas0 bueno, para los ms geeGs & tocapelotas. Iale, se puede implementar un script de inicio en
.etc.rc.d.%(%*.d 2o .etc.%(%*.d 4 con el que +agamos que iptables se Jinicie o pareJ como un servidor
ms. 5o podemos +acer nosotros o es probable que venga en la distribuci$n 2como en red+at por
ejemplo4. *ambin se pueden salvar las reglas aplicadas con el comando iptables;save en un fic+ero
& gestionar ese fic+ero con una aplicaci$n o front;end desde la K o desde webmin.
Iale, tenemos una mquina linu# con soporte para iptables, tiene reglas aplicadas & empie'an a
llegar.salir.pasar paquetes. (o nos liemos0 olvidemos cuantas tarjetas de red +a&, que direcciones ip
tiene la mquina & olvidemos si el paquete entra o sale. 5as reglas de firewall estn a nivel de
Gernel, & al Gernel lo que le llega es un paquete 2digamos, un marr$n 94 4 & tiene que decidir que
+acer con l. El Gernel lo que +ace es, dependiendo si el paquete es para la propia maquina o para
otra maquina, consultar las reglas de firewall & decidir que +acer con el paquete seg3n mande el
firewall. Este es el camino que seguira un paquete en el Gernel0
1igura L0 cuando un paquete u otra comunicaci$n llega al Gernel con iptables se sigue este camino
,omo se ve en el grfico, bsicamente se mira si el paquete esta destinado a la propia maquina o si
va a otra. -ara los paquetes 2o datagramas, seg3n el protocolo4 que van a la propia maquina se
aplican las reglas %(-U* & !U*-U*, & para filtrar paquetes que van a otras redes o maquinas se
aplican simplemente reglas 1!<M)<.
%(-U*,!U*-U* & 1!<M)< son los tres tipos de reglas de filtrado. -ero antes de aplicar esas
reglas es posible aplicar reglas de ()*0 estas se usan para +acer redirecciones de puertos o cambios
en las %-s de origen & destino. Ieremos ejemplos.
E incluso antes de las reglas de ()* se pueden meter reglas de tipo /)(?5E, destinadas a
modificar los paquetes9 son reglas poco conocidas & es probable que no las usen.
-or tanto tenemos tres tipos de reglas en iptables0
; /)(?5E
; ()*0 reglas -<E<!U*%(?, -!"*<!U*%(?
; 1%5*E<0 reglas %(-U*, !U*-U*, 1!<M)<.
8. )l grano0 creando un firewall con iptables
En este tutorial se +a intentado dar una breve introducci$n sobre lo que es un firewall, sus tipologas
bsicas & en concreto se presenta el sistema iptables. -ero vamos al grano & empe'amos a ver
configuraciones de firewall con iptables, empe'ando desde la ms bsica a las ms complejas, en
las que se establece la denegaci$n como poltica por defecto.
(ota0 se recomienda encarecidamente ir practicando estas reglas en alguna maquina linu#
disponible, & especialmente +acer uso de la +erramienta iptraf para depurar & comprobar el
funcionamiento de iptables. ,on iptraf podemos comprobar si las cone#iones *,-.%- se llegan a
establecer o no. Una cone#i$n tcp.ip empie'a con el t+ree;wa&;+ands+aGe0
; 5a maquina que desea conectarse a otra envia un paquete con flan "N(
; "i la otra maquina acepta, envia un "N(.),O
; Entonces la mquina establece la cone#i$n.
"i el firewall esta denegando la cone#i$n, con iptraf veremos que la maquina origen solo manda
paquetes con el flan " 2de "N(4, & que del otro lado no sale nada. "aber usar iptraf nos a&udar
muc+o.

8.1 -roteger la propia mquina
/u& bien, tenemos una mquina linu# pinc+ada en internet & queremos protegerla con su propio
firewall. 5o 3nico que tenemos que +acer es crear un script de s+ell en el que se van aplicando las
reglas.
5os scripts de iptables pueden tener este aspecto0
"aludo a la afici$n 2ec+o4
Porrado de las reglas aplicadas actualmente 2flus+4
)plicaci$n de polticas por defecto para %(-U*, !U-U*, 1!<M)<
5istado de reglas iptables.
!jo con el orden de las reglasQ
RQ.bin.s+
RR ",<%-* de %-*)P5E" ; ejemplo del manual de iptables
RR Ejemplo de script para proteger la propia mquina
ec+o ;n )plicando <eglas de 1irewall...
RR 15U"B de reglas
iptables ;1
iptables ;K
iptables ;6
iptables ;t nat ;1
RR Establecemos politica por defecto
iptables ;- %(-U* ),,E-*
iptables ;- !U*-U* ),,E-*
iptables ;- 1!<M)< ),,E-*
iptables ;t nat ;- -<E<!U*%(? ),,E-*
iptables ;t nat ;- -!"*<!U*%(? ),,E-*
RR Empe'amos a filtrar
R El local+ost se deja 2por ejemplo cone#iones locales a m&sql4
.sbin.iptables ;) %(-U* ;i lo ;j ),,E-*
R ) nuestra %- le dejamos todo
iptables ;) %(-U* ;s 1AL.SL.8:.78: ;j ),,E-*
R ) un colega le dejamos entrar al m&sql para que mantenga la PP
iptables ;) %(-U* ;s 781.:L.18:.78 ;p tcp ;;dport 88>S ;j ),,E-*
R ) un diseHador le dejamos usar el 1*-
iptables ;) %(-U* ;s @>.8=.:L.1A: ;p tcp ;dport 7>071 ;j ),,E-*
R El puerto @> de www debe estar abierto, es un servidor web.
iptables ;) %(-U* ;p tcp ;;dport @> ;j ),,E-*
R N el resto, lo cerramos
iptables ;) %(-U* ;p tcp ;;dport 7>071 ;j <!-
iptables ;) %(-U* ;p tcp ;;dport 88>S ;j <!-
iptables ;) %(-U* ;p tcp ;;dport 77 ;j <!-
iptables ;) %(-U* ;p tcp ;;dport 1>>>> ;j <!-
ec+o J !O . Ierifique que lo que se aplica con0 iptables ;5 ;nJ
R 1in del script
(ota para freaGs & geeGs0 siiii, que &a lo se, se puede mejorar este script usando variables, se puede
poner el comando con el pat+ completo, pero limtense a +acer cop&;paste. -ara el resto de
mortales, no olvidarse de ponerle flags de ejecuci$n0 c+mod T# firewall1.s+ o c+mod =L>
firewall1.s+
En fin, &a se ve, un script de los ms simple, con unas pocas reglas con las que cerramos puertos al
p3blico a los que no tienen porque tener acceso, salvo el @>. -ero cualquiera con algo de ojo se
+abr dado cuenta de que ni se filtra el U- ni el %,/-. )postara cualquier cosa a que el sistema
tiene alg3n puerto udp abierto, & adems peligroso como el "(/-. ,omo +e dic+o anteriormente,
en este tipo de firewall es recordable +acer un netstat para ver que puertos estn en estado de
escuc+a 2abiertos4, & salve que un rootGit nos +a&a modificado los binarios, netstat nos dar la
informaci$n precisa que necesitamos. Ba& gente que se decanta por +acerse un nmap as mismos.
,uidado0 dependiendo de c$mo lo ejecutemos qui' no nos muestre todos los puertos, &a que suele
mirar los bien conocidos.
%maginemos que +emos dado un repaso a nuestro sistema, & a+ora si que tenemos mejor
identificados los puertos tcp & udp abiertos. -ero por si acaso nos curamos en salud & al final del
script cerraremos el rango de puertos del 1 al 1>7:, los reservados tanto para tcp como udp.
RQ.bin.s+
RR ",<%-* de %-*)P5E" ; ejemplo del manual de iptables
RR Ejemplo de script para proteger la propia mquina
ec+o ;n )plicando <eglas de 1irewall...
RR 15U"B de reglas
iptables ;1
iptables ;K
iptables ;6
iptables ;t nat ;1
RR Establecemos politica por defecto
iptables ;- %(-U* ),,E-*
iptables ;- !U*-U* ),,E-*
iptables ;- 1!<M)< ),,E-*
iptables ;t nat ;- -<E<!U*%(? ),,E-*
iptables ;t nat ;- -!"*<!U*%(? ),,E-*
RR Empe'amos a filtrar
R El local+ost se deja 2por ejemplo cone#iones locales a m&sql4
.sbin.iptables ;) %(-U* ;i lo ;j ),,E-*
R ) nuestra %- le dejamos todo
iptables ;) %(-U* ;s 1AL.SL.8:.78: ;j ),,E-*
R ) un colega le dejamos entrar al m&sql para que mantenga la PP
iptables ;) %(-U* ;s 781.:L.18:.78 ;p tcp ;;dport 88>S ;j ),,E-*
R ) un diseHador le dejamos usar el 1*-
iptables ;) %(-U* ;s @>.8=.:L.1A: ;p tcp ;dport 7>071 ;j ),,E-*
R El puerto @> de www debe estar abierto, es un servidor web.
iptables ;) %(-U* ;p tcp ;;dport @> ;j ),,E-*
R ,erramos rango de los puertos privilegiados. ,uidado con este tipo de
R barreras, antes +a& que abrir a los que si tienen acceso.
iptables ;) %(-U* ;p tcp ;;dport 101>7: ;j <!-
iptables ;) %(-U* ;p udp ;;dport 101>7: ;j <!-
R ,erramos otros puertos que estan abiertos
iptables ;) %(-U* ;p tcp ;;dport 88>S ;j <!-
iptables ;) %(-U* ;p tcp ;;dport 1>>>> ;j <!-
iptables ;) %(-U* ;p udp ;;dport 1>>>> ;j <!-
ec+o J !O . Ierifique que lo que se aplica con0 iptables ;5 ;nJ
R 1in del script
D"encillo, noE )+ora basta con +acer cop&;paste de estas reglas & aplicarlas & ajustarlas en su
sistema 2qui's uses -ostgre"Q54. "i tiene miedo de perder el control de una mquina remota,
pruebe el script en una mquina local & aseg3rese de que aplica lo que usted quiere. 1uncionar va a
funcionar seguro.
- Versin con DROP por defecto
Iale, queremos que nuestra maquina sea ine#crutable & que solo tenga abierto un puerto
imprescindible para dar determinado servicio. ,on <!- por defecto se protege la maquina
perfectamente, aunque +a& que aHadir algunas reglas para que la propia mquina sea capa' de salir
a internet.D -ara quE +ombre, porque la maquina necesita actuali'aciones, consultar (" por udp,
sacar correo etc.
Ieamos un posible script0

RQ.bin.s+
RR ",<%-* de %-*)P5E" ; ejemplo del manual de iptables
ec+o ;n )plicando <eglas de 1irewall...
RR 15U"B de reglas
iptables ;1
iptables ;K
iptables ;6
iptables ;t nat ;1
RR Establecemos politica por defecto0 <!-
iptables ;- %(-U* <!-
iptables ;- !U*-U* <!-
iptables ;- 1!<M)< <!-
RR Empe'amos a filtrarE noQ empe'amos a abrirQ porque a+ora esta *!! denegado.
RR ebemos decir de manera e#plicita qu es lo que queremos abrir
R !perar en local+ost sin limitaciones
.sbin.iptables ;) %(-U* ;i lo ;j ),,E-*
.sbin.iptables ;) !U*-U* ;o lo ;j ),,E-*
R ) nuestra %- le dejamos todo
iptables ;) %(-U* ;s 1AL.SL.8:.78: ;j ),,E-*
iptables ;) !U*-U* ;d 1AL.SL.8:.78: ;j ),,E-*
R Este es el servicio que ) la maquina a internet, por tanto todo paquete entrante se acepta para
R ese puerto & los salientes vinculados se aceptan.
.sbin.iptables ;) %(-U* ;p tcp ;m tcp ;;dport @> ;j ),,E-*
.sbin.iptables ;) !U*-U* ;p tcp ;m tcp ;;sport @> ;m state ;;state <E5)*E,E"*)P5%"BE ;j
),,E-*
R -ermitimos que la maquina pueda salir a la web
.sbin.iptables ;) %(-U* ;p tcp ;m tcp ;;sport @> ;m state ;;state <E5)*E,E"*)P5%"BE ;j
),,E-*
.sbin.iptables ;) !U*-U* ;p tcp ;m tcp ;;dport @> ;j ),,E-*
R Na tambien a webs seguras
.sbin.iptables ;) %(-U* ;p tcp ;m tcp ;;sport ::8 ;m state ;;state <E5)*E,E"*)P5%"BE ;j
),,E-*
.sbin.iptables ;) !U*-U* ;p tcp ;m tcp ;;dport ::8 ;j ),,E-*
R <eglas necesarias para 1*- pasivo & activo. "e permiten cone#iones entrantes N) establecidas
.sbin.iptables ;) %(-U* ;p tcp ;m tcp ;;sport 7>071 ;m state ;;state <E5)*E,E"*)P5%"BE ;j
),,E-*
.sbin.iptables ;) !U*-U* ;p tcp ;m tcp ;;dport 7>071 ;j ),,E-*
.sbin.iptables ;) %(-U* ;p tcp ;m tcp ;;sport 1>7:0SLL8L ;;dport 1>7:0SLL8L ;m state ;;state
E"*)P5%"BE ;j ),,E-*
.sbin.iptables ;) !U*-U* ;p tcp ;m tcp ;;dport 1>7:0SLL8L ;m state ;;state
(EM,<E5)*E,E"*)P5%"BE ;j ),,E-*
R -ermitimos la consulta a un primer ("
.sbin.iptables ;) %(-U* ;s 711.AL.S:.8A ;p udp ;m udp ;;sport L8 ;j ),,E-*
.sbin.iptables ;) !U*-U* ;d 711.AL.S:.8A ;p udp ;m udp ;;dport L8 ;j ),,E-*
R -ermitimos la consulta a un segundo ("
.sbin.iptables ;) %(-U* ;s 711.AL.=A.1>A ;p udp ;m udp ;;sport L8 ;j ),,E-*
.sbin.iptables ;) !U*-U* ;d 711.AL.=A.1>A ;p udp ;m udp ;;dport L8 ;j ),,E-*
R -ermitimos consultar el reloj de +ora.rediris.es 2un pentium1SS4 para sincroni'arse
.sbin.iptables ;) %(-U* ;s 18>.7>S.8.1SS ;p udp ;m udp ;;dport 178 ;j ),,E-*
.sbin.iptables ;) !U*-U* ;d 18>.7>S.8.1SS ;p udp ;m udp ;;sport 178 ;j ),,E-*
R Parrera de bacGup por si cambiamos a modo ),,E-* temporalmente
R ,on esto protegemos los puertos reservados & otros well;Gnown
.sbin.iptables ;) %(-U* ;p tcp ;m tcp ;;dport 101>7: ;j <!-
.sbin.iptables ;) %(-U* ;p udp ;m udp ;;dport 101>7: ;j <!-
.sbin.iptables ;) %(-U* ;p tcp ;m tcp ;;dport 1=78 ;j <!-
.sbin.iptables ;) %(-U* ;p tcp ;m tcp ;;dport 88>S ;j <!-
.sbin.iptables ;) %(-U* ;p tcp ;m tcp ;;dport L:87 ;j <!-
ec+o J !O . Ierifique que lo que se aplica con0 iptables ;5 ;nJ
R 1in del script
8.7 1irewall de una 5)( con salida a internet
)+ora vamos a ver una configuraci$n de firewall iptables para el tpico caso de red local que
necesita salida a internet.

1igura S0 esquema de firewall tpico entre red local e internet
DQu es lo que +ace faltaE !bviamente, una regla que +aga ()* +acia fuera 2enmascaramiento en
iptables4, con lo que se +ara dos veces ()* en el firewall & en el router. Entre el router & el firewall
lo normal es que +a&a una red privada 21A7.1S@.1.1 & 1A7.1S@.1.7 por ejemplo4, aunque
dependiendo de las necesidades puede que los dos tengan %- p3blica. El router se supone que +ace
un ()* completo +acia dentro 2qui' salvo puerto 784, o sea que desde el e#terior no se llega al
router si no que de forma transparente se Jc+ocaJ contra el firewall. 5o normal en este tipo de
firewalls es poner la poltica por defecto de 1!<M)< en denegar 2<!-4, pero eso lo vemos
ms adelante.
Ieamos como sera este firewall;gatewa&0
RQ.bin.s+
RR ",<%-* de %-*)P5E" ; ejemplo del manual de iptables
RR Ejemplo de script para firewall entre red;local e internet
ec+o ;n )plicando <eglas de 1irewall...
RR 15U"B de reglas
iptables ;1
iptables ;K
iptables ;6
iptables ;t nat ;1
RR Establecemos politica por defecto
iptables ;- %(-U* ),,E-*
iptables ;- !U*-U* ),,E-*
iptables ;- 1!<M)< ),,E-*
iptables ;t nat ;- -<E<!U*%(? ),,E-*
iptables ;t nat ;- -!"*<!U*%(? ),,E-*
RR Empe'amos a filtrar
RR (ota0 et+> es el interfa' conectado al router & et+1 a la 5)(
R El local+ost se deja 2por ejemplo cone#iones locales a m&sql4
.sbin.iptables ;) %(-U* ;i lo ;j ),,E-*
R )l firewall tenemos acceso desde la red local
iptables ;) %(-U* ;s 1A7.1S@.1>.>.7: ;i et+1 ;j ),,E-*
R )+ora +acemos enmascaramiento de la red local
R & activamos el P%* E 1!<M)<%(? 2imprescindibleQQQQQ4
iptables ;t nat ;) -!"*<!U*%(? ;s 1A7.1S@.1>.>.7: ;o et+> ;j /)"QUE<)E
R ,on esto permitimos +acer forward de paquetes en el firewall, o sea
R que otras mquinas puedan salir a traves del firewall.
ec+o 1 U .proc.s&s.net.ipv:.ipVforward
RR N a+ora cerramos los accesos indeseados del e#terior0
R (ota0 >.>.>.>.> significa0 cualquier red
R ,erramos el rango de puerto bien conocido
iptables ;) %(-U* ;s >.>.>.>.> ;p tcp ;dport 101>7: ;j <!-
iptables ;) %(-U* ;s >.>.>.>.> ;p udp ;dport 101>7: ;j <!-
R ,erramos un puerto de gesti$n0 webmin
iptables ;) %(-U* ;s >.>.>.>.> ;p tcp ;dport 1>>>> ;j <!-
ec+o J !O . Ierifique que lo que se aplica con0 iptables ;5 ;nJ
R 1in del script
-ero como somos mu& malvados queremos que los empleados solamente puedan navegar por
internet, denegando el acceso a Oa'aa o edonGe&. Esta sera una configuraci$n simple pero efectiva.
RQ.bin.s+
RR ",<%-* de %-*)P5E" ; ejemplo del manual de iptables
RR Ejemplo de script para firewall entre red;local e internet
RR con filtro para que solo se pueda navegar.
ec+o ;n )plicando <eglas de 1irewall...
RR 15U"B de reglas
iptables ;1
iptables ;K
iptables ;6
iptables ;t nat ;1
RR Establecemos politica por defecto
iptables ;- %(-U* ),,E-*
iptables ;- !U*-U* ),,E-*
iptables ;- 1!<M)< ),,E-*
iptables ;t nat ;- -<E<!U*%(? ),,E-*
iptables ;t nat ;- -!"*<!U*%(? ),,E-*
RR Empe'amos a filtrar
RR (ota0 et+> es el interfa' conectado al router & et+1 a la 5)(
R El local+ost se deja 2por ejemplo cone#iones locales a m&sql4
.sbin.iptables ;) %(-U* ;i lo ;j ),,E-*
R )l firewall tenemos acceso desde la red local
iptables ;) %(-U* ;s 1A7.1S@.1>.>.7: ;i et+1 ;j ),,E-*
RR )+ora con regla 1!<M)< filtramos el acceso de la red local
RR al e#terior. ,omo se e#plica antes, a los paquetes que no van dirigidos al
RR propio firewall se les aplican reglas de 1!<M)<
R )ceptamos que va&an a puertos @>
iptables ;) 1!<M)< ;s 1A7.1S@.1>.>.7: ;i et+1 ;p tcp ;;dport @> ;j ),,E-*
R )ceptamos que va&an a puertos +ttps
iptables ;) 1!<M)< ;s 1A7.1S@.1>.>.7: ;i et+1 ;p tcp ;;dport ::8 ;j ),,E-*
R )ceptamos que consulten los ("
iptables ;) 1!<M)< ;s 1A7.1S@.1>.>.7: ;i et+1 ;p tcp ;;dport L8 ;j ),,E-*
iptables ;) 1!<M)< ;s 1A7.1S@.1>.>.7: ;i et+1 ;p udp ;;dport L8 ;j ),,E-*
R N denegamos el resto. "i se necesita alguno, &a avisaran
iptables ;) 1!<M)< ;s 1A7.1S@.1>.>.7: ;i et+1 ;j <!-
R )+ora +acemos enmascaramiento de la red local
R & activamos el P%* E 1!<M)<%(? 2imprescindibleQQQQQ4
iptables ;t nat ;) -!"*<!U*%(? ;s 1A7.1S@.1>.>.7: ;o et+> ;j /)"QUE<)E
R ,on esto permitimos +acer forward de paquetes en el firewall, o sea
R que otras mquinas puedan salir a traves del firewall.
ec+o 1 U .proc.s&s.net.ipv:.ipVforward
RR N a+ora cerramos los accesos indeseados del e#terior0
R (ota0 >.>.>.>.> significa0 cualquier red
R ,erramos el rango de puerto bien conocido
iptables ;) %(-U* ;s >.>.>.>.> ;p tcp ;dport 101>7: ;j <!-
iptables ;) %(-U* ;s >.>.>.>.> ;p udp ;dport 101>7: ;j <!-
R ,erramos un puerto de gesti$n0 webmin
iptables ;) %(-U* ;s >.>.>.>.> ;p tcp ;dport 1>>>> ;j <!-
ec+o J !O . Ierifique que lo que se aplica con0 iptables ;5 ;nJ
R 1in del script
"upongamos que este firewall tiene alguna funci$n adicional0 es un servidor pro#& & adems es un
servidor de correo. arle funcionalidades de este tipo a un firewall no es recomendable, porque si
no se protegen bien esos puertos o si no est actuali'ado el software pueden entrar en el firewall a
base de #ploits comprometiendo *!) la red local. e todas formas muc+as empresas no se
pueden permitir o no quieren tener una mquina para cada cosa, bastante les cuesta a muc+as poner
un firewall. -or tanto0 si se aHaden servicios que deben estar abiertos al p3blico en el propio
firewall, nos la estamos jugando, & se recomienda pasar el servicio a otra mquina & ponerla en la
/6.
"upongamos tambin que la empresa tiene comerciales en ruta & que se conectan a internet desde su
porttil & con una ip dinmica. "upongamos tambin que el jefe de la empresa quiere acceder a la
red local desde casa con una cone#i$n )"5. )+ora en el firewall debieramos tener instalado un
servidor "/*-, pop8, & un --*-.
RQ.bin.s+
RR ",<%-* de %-*)P5E" ; ejemplo del manual de iptables
RR Ejemplo de script para firewall entre red;local e internet
RR con servicios abiertos de puerto 7L, 11>, & 1=78
ec+o ;n )plicando <eglas de 1irewall...
RR 15U"B de reglas
iptables ;1
iptables ;K
iptables ;6
iptables ;t nat ;1
RR Establecemos politica por defecto
iptables ;- %(-U* ),,E-*
iptables ;- !U*-U* ),,E-*
iptables ;- 1!<M)< ),,E-*
iptables ;t nat ;- -<E<!U*%(? ),,E-*
iptables ;t nat ;- -!"*<!U*%(? ),,E-*
RR Empe'amos a filtrar
RR (ota0 et+> es el interfa' conectado al router & et+1 a la 5)(
R El local+ost se deja 2por ejemplo cone#iones locales a m&sql4
iptables ;) %(-U* ;i lo ;j ),,E-*
R )l firewall tenemos acceso desde la red local
iptables ;) %(-U* ;s 1A7.1S@.1>.>.7: ;i et+1 ;j ),,E-*
RR )brimos el acceso a puertos de correo
R )brimos el puerto 7L, +a& que configurar bien el rela& del servidor "/*-
iptables ;) %(-U* ;s >.>.>.>.> ;p tcp ;;dport 7L ;j ),,E-*
R )brimos el pop8
iptables ;) %(-U* ;s >.>.>.>.> ;p tcp ;;dport 11> ;j ),,E-*
R N abrimos el puerto pptpd para la ip del adsl de casa del jefe
iptables ;) %(-U* ;s 711.:L.1=S.7: ;p tcp ;;dport 1=78 ;j ),,E-*
RR )+ora con regla 1!<M)< filtramos el acceso de la red local
RR al e#terior. ,omo se e#plica antes, a los paquetes que no van dirigidos al
RR propio firewall se les aplican reglas de 1!<M)<
R )ceptamos que va&an a puertos @>
iptables ;) 1!<M)< ;s 1A7.1S@.1>.>.7: ;i et+1 ;p tcp ;;dport @> ;j ),,E-*
R )ceptamos que va&an a puertos +ttps
iptables ;) 1!<M)< ;s 1A7.1S@.1>.>.7: ;i et+1 ;p tcp ;;dport ::8 ;j ),,E-*
R )ceptamos que consulten los ("
iptables ;) 1!<M)< ;s 1A7.1S@.1>.>.7: ;i et+1 ;p tcp ;;dport L8 ;j ),,E-*
iptables ;) 1!<M)< ;s 1A7.1S@.1>.>.7: ;i et+1 ;p udp ;;dport L8 ;j ),,E-*
R N denegamos el resto. "i se necesita alguno, &a avisaran
iptables ;) 1!<M)< ;s 1A7.1S@.1>.>.7: ;i et+1 ;j <!-
R )+ora +acemos enmascaramiento de la red local
R & activamos el P%* E 1!<M)<%(? 2imprescindibleQQQQQ4
iptables ;t nat ;) -!"*<!U*%(? ;s 1A7.1S@.1>.>.7: ;o et+> ;j /)"QUE<)E
R ,on esto permitimos +acer forward de paquetes en el firewall, o sea
R que otras mquinas puedan salir a traves del firewall.
ec+o 1 U .proc.s&s.net.ipv:.ipVforward
RR N a+ora cerramos los accesos indeseados del e#terior0
R (ota0 >.>.>.>.> significa0 cualquier red
R ,erramos el rango de puerto bien conocido
iptables ;) %(-U* ;s >.>.>.>.> ;i et+> ;p tcp ;dport 101>7: ;j <!-
iptables ;) %(-U* ;s >.>.>.>.> ;i et+> ;p udp ;dport 101>7: ;j <!-
R ,erramos un puerto de gesti$n0 webmin
iptables ;) %(-U* ;s >.>.>.>.> ;i et+> ;p tcp ;;dport 1>>>> ;j <!-
R N cerramos el puerto del servicio --*-, solo abierto para el jefe.
iptables ;) %(-U* ;s >.>.>.>.> ;i et+> ;p tcp ;;dport 1=78 ;j <!-
ec+o J !O . Ierifique que lo que se aplica con0 iptables ;5 ;nJ
R 1in del script
W/s difcil todavaQ
)+ora queremos compartir alg3n servicio pero de un servidor que tenemos dentro de la red local,
por ejemplo el %%" de un servidor windows7>>>, & adems permitir la gesti$n remota por terminal
server para esta mquina para una empresa e#terna. En este caso lo que +a& que +acer es un
redirecci$n de puerto. )ntes de iptables esto se poda +acer fcilmente con un servidor como rinet.
<inet lo que +ace es simplemente abrir un puerto en el firewall & al conectarse a l te lleva +asta el
puerto de otra mquina, como una tubera. ,on %ptables podemos +acer redirecciones con una
ventaja0 no perdemos la informaci$n de %- origen, cosa que con rinet s ocurra. En fin, veamos la
configuraci$n, con las nuevas reglas de ()*0
RQ.bin.s+
RR ",<%-* de %-*)P5E" ; ejemplo del manual de iptables
RR Ejemplo de script para firewall entre red;local e internet
RR con servicios abiertos de puerto 7L, 11>, & 1=78
ec+o ;n )plicando <eglas de 1irewall...
RR 15U"B de reglas
iptables ;1
iptables ;K
iptables ;6
iptables ;t nat ;1
RR Establecemos politica por defecto
iptables ;- %(-U* ),,E-*
iptables ;- !U*-U* ),,E-*
iptables ;- 1!<M)< ),,E-*
iptables ;t nat ;- -<E<!U*%(? ),,E-*
iptables ;t nat ;- -!"*<!U*%(? ),,E-*
RR Empe'amos a filtrar
RR <E%<E,,%!(E"
R *odo lo que venga por el e#terior & va&a al puerto @> lo redirigimos
R a una maquina interna
iptables ;t nat ;) -<E<!U*%(? ;i et+> ;p tcp ;;dport @> ;j ()* ;;to 1A7.1S@.1>.170@>
R 5os accesos de un ip determinada a *erminal server se redirigen e esa
R maquina
iptables ;t nat ;) -<E<!U*%(? ;s 771.78.17:.1@1 ;i et+> ;p tcp ;;dport 88@A ;j ()* ;;to
1A7.1S@.1>.17088@A
RR (ota0 et+> es el interfa' conectado al router & et+1 a la 5)(
R El local+ost se deja 2por ejemplo cone#iones locales a m&sql4
iptables ;) %(-U* ;i lo ;j ),,E-*
R )l firewall tenemos acceso desde la red local
iptables ;) %(-U* ;s 1A7.1S@.1>.>.7: ;i et+1 ;j ),,E-*
RR )brimos el acceso a puertos de correo
R )brimos el puerto 7L, +a& que configurar bien el rela& del servidor "/*-
iptables ;) %(-U* ;s >.>.>.>.> ;p tcp ;;dport 7L ;j ),,E-*
R )brimos el pop8
iptables ;) %(-U* ;s >.>.>.>.> ;p tcp ;;dport 11> ;j ),,E-*
R N abrimos el puerto pptpd para la ip del adsl de casa del jefe
iptables ;) %(-U* ;s 711.:L.1=S.7: ;p tcp ;;dport 1=78 ;j ),,E-*
RR )+ora con regla 1!<M)< filtramos el acceso de la red local
RR al e#terior. ,omo se e#plica antes, a los paquetes que no van dirigidos al
RR propio firewall se les aplican reglas de 1!<M)<
R )ceptamos que va&an a puertos @>
iptables ;) 1!<M)< ;s 1A7.1S@.1>.>.7: ;i et+1 ;p tcp ;;dport @> ;j ),,E-*
R )ceptamos que va&an a puertos +ttps
iptables ;) 1!<M)< ;s 1A7.1S@.1>.>.7: ;i et+1 ;p tcp ;;dport ::8 ;j ),,E-*
R )ceptamos que consulten los ("
iptables ;) 1!<M)< ;s 1A7.1S@.1>.>.7: ;i et+1 ;p tcp ;;dport L8 ;j ),,E-*
iptables ;) 1!<M)< ;s 1A7.1S@.1>.>.7: ;i et+1 ;p udp ;;dport L8 ;j ),,E-*
R N denegamos el resto. "i se necesita alguno, &a avisaran
iptables ;) 1!<M)< ;s 1A7.1S@.1>.>.7: ;i et+1 ;j <!-
R )+ora +acemos enmascaramiento de la red local
R & activamos el P%* E 1!<M)<%(? 2imprescindibleQQQQQ4
iptables ;t nat ;) -!"*<!U*%(? ;s 1A7.1S@.1>.>.7: ;o et+> ;j /)"QUE<)E
R ,on esto permitimos +acer forward de paquetes en el firewall, o sea
R que otras mquinas puedan salir a traves del firewall.
ec+o 1 U .proc.s&s.net.ipv:.ipVforward
RR N a+ora cerramos los accesos indeseados del e#terior0
R (ota0 >.>.>.>.> significa0 cualquier red
R ,erramos el rango de puerto bien conocido
iptables ;) %(-U* ;s >.>.>.>.> ;i et+> ;p tcp ;dport 101>7: ;j <!-
iptables ;) %(-U* ;s >.>.>.>.> ;i et+> ;p udp ;dport 101>7: ;j <!-
R ,erramos un puerto de gesti$n0 webmin
iptables ;) %(-U* ;s >.>.>.>.> ;i et+> ;p tcp ;;dport 1>>>> ;j <!-
R N cerramos el puerto del servicio --*-, solo abierto para el jefe.
iptables ;) %(-U* ;s >.>.>.>.> ;i et+> ;p tcp ;;dport 1=78 ;j <!-
ec+o J !O . Ierifique que lo que se aplica con0 iptables ;5 ;nJ
R 1in del script
Pueno &a tenemos montada la red, pero conviene insistir en que esta 3ltima configuraci$n, con las
redirecciones & los servicios de correo funcionando en el firewall es bastante insegura. DQu ocurre
si +acGean el servidor %%" de la red localE -ues que el firewall no sirve de gran cosa, lo poco que
podra +acer una ve' se +a entrado en la red local es evitar escaneos +acia el e#terior desde la
mquina atacada, aunque para ello el firewall debiera tener una buena configuraci$n con
denegaci$n por defecto. "i necesitamos ese servidor %%", basta con comprar una tarjeta de red por SX
o dolares & crear una /6.
8.8 1irewall de una 5)( con salida a internet con /6
Pueno, esto se va complicando. %maginemos que tenemos una red parecida a la anterior pero a+ora
+acemos las cosas bien & colocamos ese servidor %%" en una /60

1igura =0 esquema de firewall entre red local e internet con 'ona /6 para servidores e#puestos
En este tipo de firewall +a& que permitir0
; )cceso de la red local a internet.
; )cceso p3blico al puerto tcp.@> & tcp.::8 del servidor de la /6
; )cceso del servidor de la /6 a una PP de la 5)(
; !bviamente bloquear el resto de acceso de la /6 +acia la 5)(.
DQu tipo de reglas son las que +a& que usar para filtrar el trfico entre la /6 & la 5)(E "olo
pueden ser las 1!<M)<, &a que estamos filtrando entre distintas redes, no son paquetes
destinados al propio firewall.
RQ.bin.s+
RR ",<%-* de %-*)P5E" ; ejemplo del manual de iptables
RR Ejemplo de script para firewall entre red;local e internet con /6
ec+o ;n )plicando <eglas de 1irewall...
RR 15U"B de reglas
iptables ;1
iptables ;K
iptables ;6
iptables ;t nat ;1
RR Establecemos politica por defecto
iptables ;- %(-U* ),,E-*
iptables ;- !U*-U* ),,E-*
iptables ;- 1!<M)< ),,E-*
iptables ;t nat ;- -<E<!U*%(? ),,E-*
iptables ;t nat ;- -!"*<!U*%(? ),,E-*
RR Empe'amos a filtrar
RR (ota0 et+> es el interfa' conectado al router & et+1 a la 5)(
R *odo lo que venga por el e#terior & va&a al puerto @> lo redirigimos
R a una maquina interna
iptables ;t nat ;) -<E<!U*%(? ;i et+> ;p tcp ;;dport @> ;j ()* ;;to 1A7.1S@.8.70@>
R 5os accesos de un ip determinada B**-" se redirigen e esa
R maquina
iptables ;t nat ;) -<E<!U*%(? ;i et+> ;p tcp ;;dport ::8 ;j ()* ;;to 1A7.1S@.8.70::8
R El local+ost se deja 2por ejemplo cone#iones locales a m&sql4
.sbin.iptables ;) %(-U* ;i lo ;j ),,E-*
R )l firewall tenemos acceso desde la red local
iptables ;) %(-U* ;s 1A7.1S@.1>.>.7: ;i et+1 ;j ),,E-*
R )+ora +acemos enmascaramiento de la red local & de la /6
R para que puedan salir +aca fuera
R & activamos el P%* E 1!<M)<%(? 2imprescindibleQQQQQ4
iptables ;t nat ;) -!"*<!U*%(? ;s 1A7.1S@.1>.>.7: ;o et+> ;j /)"QUE<)E
iptables ;t nat ;) -!"*<!U*%(? ;s 1A7.1S@.8.>.7: ;o et+> ;j /)"QUE<)E
R ,on esto permitimos +acer forward de paquetes en el firewall, o sea
R que otras mquinas puedan salir a traves del firewall.
ec+o 1 U .proc.s&s.net.ipv:.ipVforward
RR -ermitimos el paso de la /6 a una PP de la 5)(0
iptables ;) 1!<M)< ;s 1A7.1S@.8.7 ;d 1A7.1S@.1>.L ;p tcp ;;dport L:87 ;j ),,E-*
iptables ;) 1!<M)< ;s 1A7.1S@.1>.L ;d 1A7.1S@.8.7 ;p tcp ;;sport L:87 ;j ),,E-*
RR permitimos abrir el *erminal server de la /6 desde la 5)(
iptables ;) 1!<M)< ;s 1A7.1S@.1>.>.7: ;d 1A7.1S@.8.7 ;p tcp ;;sport 1>7:0SLL8L ;;dport 88@A ;j
),,E-*
R Y +a& que +acerlo en uno & otro sentido Y
iptables ;) 1!<M)< ;s 1A7.1S@.8.7 ;d 1A7.1S@.1>.>.7: ;p tcp ;;sport 88@A ;;dport 1>7:0SLL8L ;j
),,E-*
R Y por que luego0
R ,erramos el acceso de la /6 a la 5)(
iptables ;) 1!<M)< ;s 1A7.1S@.8.>.7: ;d 1A7.1S@.1>.>.7: ;j <!-
RR ,erramos el acceso de la /6 al propio firewall
iptables ;) %(-U* ;s 1A7.1S@.8.>.7: ;i et+7 ;j <!-
RR N a+ora cerramos los accesos indeseados del e#terior0
R (ota0 >.>.>.>.> significa0 cualquier red
R ,erramos el rango de puerto bien conocido
iptables ;) %(-U* ;s >.>.>.>.> ;p tcp ;dport 101>7: ;j <!-
iptables ;) %(-U* ;s >.>.>.>.> ;p udp ;dport 101>7: ;j <!-
R ,erramos un puerto de gesti$n0 webmin
iptables ;) %(-U* ;s >.>.>.>.> ;p tcp ;dport 1>>>> ;j <!-
ec+o J !O . Ierifique que lo que se aplica con0 iptables ;5 ;nJ
R 1in del script
Iamos a ver0 si las mquinas de la /6 tienen una ip p3blica +a& que tener muc+simo cuidado de
no permitir el 1!<M)< por defecto. "i en la /6 +a& ip p3blica (! E" (E,E")<%! B),E<
<E%<E,,%!(E" de puerto, sino que basta con rutar los paquetes para llegar +asta la /6. Este
tipo de necesidades surgen cuando por ejemplo tenemos dos mquinas con servidor web 2un apac+e
& un %%"49 D) cul de las dos le redirigimos el puerto @>E (o +a& manera de saberlo 2(o, con
servidores virtuales tampoco, pinsalo4, por eso se deben asignar %-s p3blicas o en su defecto usar
puertos distintos.
-or tanto +a& que proteger convenientemente toda la /6. *ampoco +ara falta enmascarar la
salida +acia el e#terior de la /6, si tiene una ip p3blica &a tiene una pata puesta en internet9
obviamente +a& que decirle al router como llegar +asta esa ip p3blica. )s podra ser esta red0

1igura @0 esquema de firewall entre red local e internet con 'ona /6 para servidores e#puestos
usando %-s p3blicas

N este podra ser un firewall adecuado0
RQ.bin.s+
RR ",<%-* de %-*)P5E" ; ejemplo del manual de iptables
RR Ejemplo de script para firewall entre red;local e internet con /6
RR pero con %-s p3blicas.
ec+o ;n )plicando <eglas de 1irewall...
RR 15U"B de reglas
iptables ;1
iptables ;K
iptables ;6
iptables ;t nat ;1
RR Establecemos politica por defecto
iptables ;- %(-U* ),,E-*
iptables ;- !U*-U* ),,E-*
iptables ;- 1!<M)< ),,E-*
iptables ;t nat ;- -<E<!U*%(? ),,E-*
iptables ;t nat ;- -!"*<!U*%(? ),,E-*
RR Empe'amos a filtrar
RR (ota0 et+> es el interfa' conectado al router & et+1 a la 5)(
R El local+ost se deja 2por ejemplo cone#iones locales a m&sql4
.sbin.iptables ;) %(-U* ;i lo ;j ),,E-*
R )l firewall tenemos acceso desde la red local
iptables ;) %(-U* ;s 1A7.1S@.1>.>.7: ;i et+1 ;j ),,E-*
R )+ora +acemos enmascaramiento de la red local & de la /6
R para que puedan salir +aca fuera
R & activamos el P%* E 1!<M)<%(? 2imprescindibleQQQQQ4
iptables ;t nat ;) -!"*<!U*%(? ;s 1A7.1S@.1>.>.7: ;o et+> ;j /)"QUE<)E
R ,on esto permitimos +acer forward de paquetes en el firewall, o sea
R que otras mquinas puedan salir a traves del firewall.
ec+o 1 U .proc.s&s.net.ipv:.ipVforward
RR -ermitimos el acceso desde el e#terior a los puertos @> & ::8 de /6
iptables ;) 1!<M)< ;d 717.1A:.@A.1L7 ;p tcp ;dport @> ;j ),,E-*
iptables ;) 1!<M)< ;d 717.1A:.@A.1L7 ;p tcp ;dport ::8 ;j ),,E-*
iptables ;) 1!<M)< ;d 717.1A:.@A.1L>.8> ;j <!-
RR -ermitimos el paso de la /6 a una PP de la 5)(0
iptables ;) 1!<M)< ;s 717.1A:.@A.1L7 ;d 1A7.1S@.1>.L ;p tcp ;;dport L:87 ;j ),,E-*
R en el otro sentido lo mismo
iptables ;) 1!<M)< ;s 1A7.1S@.1>.L ;d 717.1A:.@A.1L7 ;p tcp ;;sport L:87 ;j ),,E-*
RR permitimos abrir el *erminal server de la /6 desde la 5)(
iptables ;) 1!<M)< ;s 1A7.1S@.1>.>.7: ;d 717.1A:.@A.1L7 ;p tcp ;;sport 1>7:0SLL8L ;;dport
88@A ;j ),,E-*
R Y +a& que +acerlo en uno & otro sentido Y
iptables ;) 1!<M)< ;s 717.1A:.@A.1L7 ;d 1A7.1S@.1>.>.7: ;p tcp ;;sport 88@A ;;dport
1>7:0SLL8L ;j ),,E-*
R Y por que luego0
R ,erramos el acceso de la /6 a la 5)(
iptables ;) 1!<M)< ;s 717.1A:.@A.1L7 ;d 1A7.1S@.1>.>.7: ;j <!-
RR ,erramos el acceso de la /6 al propio firewall
iptables ;) %(-U* ;s 717.1A:.@A.1L7 ;i et+7 ;j <!-
RR N a+ora cerramos los accesos indeseados del e#terior0
R (ota0 >.>.>.>.> significa0 cualquier red
R ,erramos el rango de puerto bien conocido
iptables ;) %(-U* ;s >.>.>.>.> ;p tcp ;dport 101>7: ;j <!-
iptables ;) %(-U* ;s >.>.>.>.> ;p udp ;dport 101>7: ;j <!-
R ,erramos un puerto de gesti$n0 webmin
iptables ;) %(-U* ;s >.>.>.>.> ;p tcp ;dport 1>>>> ;j <!-
ec+o J !O . Ierifique que lo que se aplica con0 iptables ;5 ;nJ
R 1in del script
)*E(,%Z(
/erece la pena pararse a e#plicar esta parte del firewall0
RR permitimos abrir el *erminal server de la /6 desde la 5)(
iptables ;) 1!<M)< ;s 1A7.1S@.1>.>.7: ;d 717.1A:.@A.1L7 ;p tcp ;sport 1>7:0SLL8L ;;dport
88@A ;j ),,E-*
R Y +a& que +acerlo en uno & otro sentido Y
iptables ;) 1!<M)< ;s 717.1A:.@A.1L7 ;d 1A7.1S@.1>.>.7: ;p tcp ;;sport 88@A ;;dport
1>7:0SLL8L ;j ),,E-*
R Y por que luego0
R ,erramos el acceso de la /6 a la 5)(
iptables ;) 1!<M)< ;s 717.1A:.@A.1L7 ;d 1A7.1S@.1>.>.7: ;j <!-
5o que nos lleva a dos cuestiones0
D-or qu +a& que e#plicitar la abertura en uno & otro sentidoE -orque la tercera regla cierra todo lo
que va de la /6 a la red local. -ara abrir el puerto 88@A de tcp es imprescindible que un paquete
de ida sea capa' de llegar +asta la /6 & que a su ve' pueda volver a la 5)(. Esto de tener que
especificar la abertura en uno & otro sentido ser el pan de cada da en un iptables con poltica
<!- por defecto0 mejor protecci$n pero ms trabajo.
D-or qu se e#plicita el puerto de origen.destino 1>7:0SLL8L en la primera & segunda reglaE
%maginemos que un +acGer logra acceso a la mquina de la /6. "i no especificamos el puerto de
destino en esas dos reglas, el +acGer puede abrir ,U)5QU%E< puerto de la 5)( siempre que
pueda establecer como puerto origen su&o el tcp.88@A, cosa fcil para un +acGer que sepa algo de ,
o que tenga el programa pertinente a mano. e todas formas el +acGer tendra que saber que e#iste
ese tipo de reglas, si es listo probara con puertos de gesti$n o con puertos netbios. El problema es
que se deja un vnculo con la 5)( bien para administrarlo remotamente o para establecer
relaciones de confian'a & a+ es donde reside el peligro.
En las cone#iones JlegalesJ no se usa como puerto origen nada por debajo del 1>7:9 cuando alguien
se conecta a otro puerto en su e#tremo abre un puerto por encima del 1>7:. Especificndolo en la
regla de firewall protegeremos un poco mejor la 5)(, aunque los puertos por encima de 1>7:
estarn en peligro.
8.: 1irewall de una 5)( con salida a internet & I-("
En principio este caso no nos tendra que dar ma&or problema, aunque la primera ve' que lo
montemos, el enmascaramiento nos jugar una mala pasada. -or eso conviene ec+ar un vista'o en
este caso.

1igura A0 esquema de firewall entre red local e internet con 'ona /6 & delegaciones que acceden
a /6
"upongamos que entre los routers &a se +a establecido un tunel 2con ,iscos se +aria creando un
interfa' *unnel4, & que si el firewall nos deja podramos llegar de la central a las delegaciones &
viceversa usando las %-s privadas. Ia&a que se puede +acer un ping desde la central a 1A7.1S@.8>.#
& nos responde. -ara ello es imprescindible que el router de la central tenga una ruta metida para
llegar a 1A7.1S@.1>.>.7: & por supuesto cada una ruta para cada delegaci$n. )ntes de meterse en el
firewall +a& que asegurar la visibilidad entre los routers & poder llegar a sus %-s privadas +aciendo
ping.
"upongamos tambin que en la central esta el servidor de correo que l$gicamente debe tener el
puerto 7L accesible desde internet, & debe ser accesible desde las delegaciones para puerto 7L, 11>
2pop84 o 1:82imap4. 5a salida a internet 2web, ftp, etc..4 cada uno la +ace por su lado.
Ieamos una posible configuraci$n para este caso.
RQ.bin.s+
RR ",<%-* de %-*)P5E" ; ejemplo del manual de iptables
RR Ejemplo de script para firewall entre red;local e internet con /6
RR & delegaciones. 5as delegaciones deben tener acceso al correo de la /6
ec+o ;n )plicando <eglas de 1irewall...
RR 15U"B de reglas
iptables ;1
iptables ;K
iptables ;6
iptables ;t nat ;1
RR Establecemos politica por defecto
iptables ;- %(-U* ),,E-*
iptables ;- !U*-U* ),,E-*
iptables ;- 1!<M)< ),,E-*
iptables ;t nat ;- -<E<!U*%(? ),,E-*
iptables ;t nat ;- -!"*<!U*%(? ),,E-*
RR Empe'amos a filtrar
RR (ota0 et+> es el interfa' conectado al router & et+1 a la 5)(
R *odo lo que venga por el e#terior & va&a al puerto 7L lo redirigimos
R a la maquina de la /6
iptables ;t nat ;) -<E<!U*%(? ;i et+> [
;p tcp ;;dport 7L ;j ()* ;;to 1A7.1S@.8.707L
R *odo lo que venga por el interfa' del router2et+>4 & va&a al 11>
R siempre que sea una delegacion se acepta & redirije
iptables ;t nat ;) -<E<!U*%(? ;s 1A7.1S@.7>.>.7: ;i et+> [
;p tcp ;;dport 11> ;j ()* ;;to 1A7.1S@.8.7011>
iptables ;t nat ;) -<E<!U*%(? ;s 1A7.1S@.8>.>.7: ;i et+> [
;p tcp ;;dport 11> ;j ()* ;;to 1A7.1S@.8.7011>
R *odo lo que venga por el interfa' del router2et+>4 & va&a al 11>
R siempre que sea una delegacion se acepta & redirije
iptables ;t nat ;) -<E<!U*%(? ;s 1A7.1S@.7>.>.7: ;i et+> [
;p tcp ;;dport 1:8 ;j ()* ;;to 1A7.1S@.8.701:8
iptables ;t nat ;) -<E<!U*%(? ;s 1A7.1S@.8>.>.7: ;i et+> [
;p tcp ;;dport 1:8 ;j ()* ;;to 1A7.1S@.8.701:8
R El local+ost se deja 2por ejemplo cone#iones locales a m&sql4
iptables ;) %(-U* ;i lo ;j ),,E-*
R )l firewall tenemos acceso desde la red local
iptables ;) %(-U* ;s 1A7.1S@.1>.>.7: ;i et+1 ;j ),,E-*
R )+ora +acemos enmascaramiento de la red local & de la /6
R para que puedan salir +aca fuera
R & activamos el P%* E 1!<M)<%(? 2imprescindibleQQQQQ4
R ,uidado con este enmascaramiento.
iptables ;t nat ;) -!"*<!U*%(? ;s 1A7.1S@.1>.>.7: ;o et+> ;j /)"QUE<)E
iptables ;t nat ;) -!"*<!U*%(? ;s 1A7.1S@.8.>.7: ;o et+> ;j /)"QUE<)E
R ,on esto permitimos +acer forward de paquetes en el firewall, o sea
R que otras mquinas puedan salir a traves del firewall.
ec+o 1 U .proc.s&s.net.ipv:.ipVforward
R -ara que desde la red local se salga +acia fuera +a& que E(/)",)<)<
R pero que pasa con las delegaciones tambien estan fuera N (! B)N QUE
R E(/)",)<)<, debemos meter una regla 1!<M)< e#plicita para que no enmascare
R porque si no una petici$n de la 5)( a otra delegacion no se meteria
R en el tunel.
iptables ;) 1!<M)< ;s 1A7.1S@.1>.>.7: ;d 1A7.1S@.7>.>.7: ;j ),,E-*
iptables ;) 1!<M)< ;s 1A7.1S@.7>.>.7: ;d 1A7.1S@.1>.>.7: ;j ),,E-*
iptables ;) 1!<M)< ;s 1A7.1S@.1>.>.7: ;d 1A7.1S@.8>.>.7: ;j ),,E-*
iptables ;) 1!<M)< ;s 1A7.1S@.8>.>.7: ;d 1A7.1S@.1>.>.7: ;j ),,E-*
R )brimos el acceso para que se pueda aceder a la /6 desde la 5)(
R a puertos de correo
R En principio lo que va de 5)( ;U /6 se acepta
iptables ;) 1!<M)< ;s 1A7.1S@.1>.>.7: ;d 1A7.1S@.8.>.7: ;j ),,E-*
R 5uedo desde la /6 a la 5)( solo se acepta 7L,11>,1:8
iptables ;) 1!<M)< ;s 1A7.1S@.8.>.7: ;p tcp ;;sport 7L [
;d 1A7.1S@.1>.>.7: ;j ),,E-*
iptables ;) 1!<M)< ;s 1A7.1S@.8.>.7: ;p tcp ;;sport 1:8 [
;d 1A7.1S@.1>.>.7: ;j ),,E-*
iptables ;) 1!<M)< ;s 1A7.1S@.8.>.7: ;p tcp ;;sport 1:8 [
;d 1A7.1S@.1>.>.7: ;j ),,E-*
R ,erramos el acceso de la /6 a la 5)(
iptables ;) 1!<M)< ;s 1A7.1S@.8.>.7: ;d 1A7.1S@.1>.>.7: ;j <!-
RR ,erramos el acceso de la /6 al propio firewall
iptables ;) %(-U* ;s 1A7.1S@.8.>.7: ;i et+7 ;j <!-
RR N a+ora cerramos los accesos indeseados del e#terior0
R (ota0 >.>.>.>.> significa0 cualquier red
R ,erramos el rango de puerto bien conocido
iptables ;) %(-U* ;s >.>.>.>.> ;p tcp ;dport 101>7: ;j <!-
iptables ;) %(-U* ;s >.>.>.>.> ;p udp ;dport 101>7: ;j <!-
R ,erramos un puerto de gesti$n0 webmin
iptables ;) %(-U* ;s >.>.>.>.> ;p tcp ;dport 1>>>> ;j <!-
ec+o J !O . Ierifique que lo que se aplica con0 iptables ;5 ;nJ
R 1in del script
"e +an remarcado en negrita las reglas 1!<M)< entre %-s privadas de delegaciones, &a que sin
esas reglas & con el enmascaramiento de por medio no se podra acceder a las delegaciones. ,abe
resaltar que entre delegaciones no +a& visibilidad total, solamente la central vera a todas las dems,
& las delegaciones solamente la central.
5a delegaciones accederan al servidor de correo con una redirecci$n, o sea que ellos se
configuraran el servidor de correo como 1A7.1S@.1>.1, mientras que desde la 5)( se accedera
directamente. "e puede +acer de distintas maneras.
5o interesante sera poner ese firewall con <!- por defecto, se tratar de mostrar esa
configuraci$n al final.

8.L 1irewall puro & duro entre redes
En este caso olvidmonos de redes locales & de ()*. )qu solo tendremos reglas de filtrado %(-U*
& 1!<M)<. -ongamos que tenemos el siguiente escenario0

1igura 1>0 esquema de firewall entre redes, en la que solo se filtra & no se +ace ()*
En el firewall debemos indicar una serie de reglas para proteger los equipos que estn al otro lado
de este dispositivo, todos ellos de la red 711.8:.1:A.>.7:
,ada uno de ellos da un servicio determinado, & puede estar gestionado desde distintas %-s, lo que
significa que +abr que dar acceso a determinados puertos de gesti$n 277, 88@A, etc..4.
Este podra ser el aspecto del script del firewall0
RQ.bin.s+
RR ",<%-* de %-*)P5E" ; ejemplo del manual de iptables
RR Ejemplo de script para firewall entre redes.
ec+o ;n )plicando <eglas de 1irewall...
RR 15U"B de reglas
iptables ;1
iptables ;K
iptables ;6
iptables ;t nat ;1
RR Establecemos politica por defecto
iptables ;- %(-U* ),,E-*
iptables ;- !U*-U* ),,E-*
iptables ;- 1!<M)< ),,E-*
RR Empe'amos a filtrar
RR (ota0 et+> es el interfa' conectado al router & et+1 a la 5)(
R ) nuestro firewall tenemos acceso total desde la nuestra %-
iptables ;) %(-U* ;s 71>.1AL.LL.1L ;j ),,E-*
R -ara el resto no +a& acceso al firewall
iptables ;) %(-U* ;s >.>.>.>.> ;j <!-
RR )+ora podemos ir metiendo las reglas para cada servidor
RR ,omo sern paquetes con destino a otras mquinas se aplica 1!<M)<
RR "ervidor MEP 711.8:.1:A.7
R )cceso a puerto @>
iptables ;) 1!<M)< ;d 711.8:.1:A.7 ;p tcp ;;dport @> ;j ),,E-*
R )cceso a nuestra ip para gestionarlo
iptables ;) 1!<M)< ;s 71>.1AL.LL.1L ;d 711.8:.1:A.7 ;p tcp ;;dport 77 ;j ),,E-*
R El resto, cerrar
iptables ;) 1!<M)< ;d 711.8:.1:A.7 ;j <!-
RR "ervidor /)%5 711.8:.1:A.8
R )cceso a puerto 7L, 11> & 1:8
iptables ;) 1!<M)< ;d 711.8:.1:A.8 ;p tcp ;;dport 7L ;j ),,E-*
iptables ;) 1!<M)< ;d 711.8:.1:A.8 ;p tcp ;;dport 11> ;j ),,E-*
iptables ;) 1!<M)< ;d 711.8:.1:A.8 ;p tcp ;;dport 1:8 ;j ),,E-*
R )cceso a gestion "(/-
iptables ;) 1!<M)< ;s 71>.1AL.LL.1L ;d 711.8:.1:A.8 ;p udp ;;dport 1SA ;j ),,E-*
R )cceso a nuestra ip para gestionarlo
iptables ;) 1!<M)< ;s 71>.1AL.LL.1L ;d 711.8:.1:A.8 ;p tcp ;;dport 77 ;j ),,E-*
R El resto, cerrar
iptables ;) 1!<M)< ;d 711.8:.1:A.8 ;j <!-
RR "ervidor %<, 711.8:.1:A.:
R )cceso a puertos %<,
iptables ;) 1!<M)< ;d 711.8:.1:A.: ;p tcp ;;dport SSSS0SSS@ ;j ),,E-*
R )cceso a nuestra ip para gestionarlo
iptables ;) 1!<M)< ;s 71>.1AL.LL.1L ;d 711.8:.1:A.: ;p tcp ;;dport 77 ;j ),,E-*
R El resto, cerrar
iptables ;) 1!<M)< ;d 711.8:.1:A.: ;j <!-
RR "ervidor (EM" 711.8:.1:A.L
R )cceso a puerto news
iptables ;) 1!<M)< ;d 711.8:.1:A.L ;p tcp ;;dport news ;j ),,E-*
R )cceso a nuestra ip para gestionarlo
iptables ;) 1!<M)< ;s 718.1A:.S@.11L ;d 711.8:.1:A.L ;p tcp ;;dport 77 ;j ),,E-*
R El resto, cerrar
iptables ;) 1!<M)< ;d 711.8:.1:A.L ;j <!-
RR "ervidor P7P 711.8:.1:A.S
R )cceso a puerto ::8
iptables ;) 1!<M)< ;d 711.8:.1:A.S ;p tcp ;;dport ::8 ;j ),,E-*
R )cceso a una ip para gestionarlo
iptables ;) 1!<M)< ;s @1.8:.17A.LS ;d 711.8:.1:A.S ;p tcp ;;dport 88@A ;j ),,E-*
R El resto, cerrar
iptables ;) 1!<M)< ;d 711.8:.1:A.S ;j <!-
RR "ervidor ,%*<%K 711.8:.1:A.=
R )cceso a puerto 1:A:
iptables ;) 1!<M)< ;d 711.8:.1:A.= ;p tcp ;;dport 1:A: ;j ),,E-*
R )cceso a una ip para gestionarlo
iptables ;) 1!<M)< ;s 1AL.LL.78:.7 ;d 711.8:.1:A.= ;p tcp ;;dport 88@A ;j ),,E-*
R acceso a otro puerto qui'a de PP
iptables ;) 1!<M)< ;s 1AL.LL.78:.7 ;d 711.8:.1:A.= ;p tcp ;;dport 1:8: ;j ),,E-*
R acceso a otro puerto qui'a de PP
iptables ;) 1!<M)< ;s 1AL.LL.78:.7 ;d 711.8:.1:A.= ;p udp ;;dport 1:88 ;j ),,E-*
R El resto, cerrar
iptables ;) 1!<M)< ;d 711.8:.1:A.= ;j <!-
ec+o J !O . Ierifique que lo que se aplica con0 iptables ;5 ;nJ
R 1in del script
,on esta firewall & sobretodo gracias a las reglas de <!- que metemos tras especificar lo que
dejamos abiertos, protegeremos de manera efica' todos lo puertos abiertos de las mquinas.
8.S 1irewall con poltica por defecto <!-
)qu llega la secci$n para los autnticos administradores de pelo en pec+o.
DQu supone el +ec+o de establecer como poltica por defecto la denegaci$nE
J "e debe e#plicitar cada cone#i$n permitida en los dos sentidos.
J "e debe conocer perfectamente qu debe estar abierto & qu no.
J Es muc+os ms difcil de mantener & si se +ace conviene +acerlo desde el principio.
J (o todo es ms trabajo0 tambin supone un firewall muc+o ms seguro.
En el ejemplo de la /6 &a se presentaba esta situaci$n en las reglas forward de una a otra red.
-ara ilustrar el <!- por defecto, vamos a mostrar la configuraci$n del ejemplo anterior de
firewall entre redes pero con poltica por defecto <!-.
RQ.bin.s+
RR ",<%-* de %-*)P5E" ; ejemplo del manual de iptables
RR Ejemplo de script para firewall entre redes con <!- por defecto
ec+o ;n )plicando <eglas de 1irewall...
RR 15U"B de reglas
iptables ;1
iptables ;K
iptables ;6
iptables ;t nat ;1
RR Establecemos politica por defecto0 <!-QQQ
iptables ;- %(-U* <!-
iptables ;- !U*-U* <!-
iptables ;- 1!<M)< <!-
RR Empe'amos a filtrar
RR (ota0 et+> es el interfa' conectado al router & et+1 a la 5)(
R ) nuestro firewall tenemos acceso total desde la nuestra %-
iptables ;) %(-U* ;s 71>.1AL.LL.1L ;j ),,E-*
iptables ;) !U*-U* ;d 71>.1AL.LL.1L ;j ),,E-*
R -ara el resto no +a& acceso al firewall
R En principio esta de ms, pero si rebajamos los permisos temporalmente
R nos cubre las espaldas
iptables ;) %(-U* ;s >.>.>.>.> ;j <!-
RR )+ora podemos ir metiendo las reglas para cada servidor
RR ,omo sern paquetes con destino a otras mquinas se aplica 1!<M)<
RR "ervidor MEP 711.8:.1:A.7
R )cceso a puerto @>
iptables ;) 1!<M)< ;d 711.8:.1:A.7 ;p tcp ;;dport @> ;j ),,E-*
iptables ;) 1!<M)< ;s 711.8:.1:A.7 ;p tcp ;;sport @> ;j ),,E-*
R )cceso a nuestra ip para gestionarlo
iptables ;) 1!<M)< ;s 71>.1AL.LL.1L ;d 711.8:.1:A.7 ;p tcp ;;dport 77 ;j ),,E-*
iptables ;) 1!<M)< ;s 711.8:.1:A.7 ;d 71>.1AL.LL.1L ;p tcp ;;sport 77 ;j ),,E-*
RR "ervidor /)%5 711.8:.1:A.8
R )cceso a puerto 7L, 11> & 1:8
iptables ;) 1!<M)< ;d 711.8:.1:A.8 ;p tcp ;;dport 7L ;j ),,E-*
iptables ;) 1!<M)< ;s 711.8:.1:A.8 ;p tcp ;;sport 7L ;j ),,E-*
iptables ;) 1!<M)< ;d 711.8:.1:A.8 ;p tcp ;;dport 11> ;j ),,E-*
iptables ;) 1!<M)< ;s 711.8:.1:A.8 ;p tcp ;;sport 11> ;j ),,E-*
iptables ;) 1!<M)< ;d 711.8:.1:A.8 ;p tcp ;;dport 1:8 ;j ),,E-*
iptables ;) 1!<M)< ;s 711.8:.1:A.8 ;p tcp ;;sport 1:8 ;j ),,E-*
R )cceso a gestion "(/-
iptables ;) 1!<M)< ;s 71>.1AL.LL.1L ;d 711.8:.1:A.8 ;p udp ;;dport 1SA ;j ),,E-*
iptables ;) 1!<M)< ;s 711.8:.1:A.8 ;d 71>.1AL.LL.1L ;p udp ;;sport 1SA ;j ),,E-*
R )cceso a nuestra ip para gestionarlo
iptables ;) 1!<M)< ;s 71>.1AL.LL.1L ;d 711.8:.1:A.8 ;p tcp ;;dport 77 ;j ),,E-*
iptables ;) 1!<M)< ;s 711.8:.1:A.8 ;d 71>.1AL.LL.1L ;p tcp ;;sport 77 ;j ),,E-*
RR "ervidor %<, 711.8:.1:A.:
R )cceso a puertos %<,
iptables ;) 1!<M)< ;d 711.8:.1:A.: ;p tcp ;;dport SSSS0SSS@ ;j ),,E-*
iptables ;) 1!<M)< ;s 711.8:.1:A.: ;p tcp ;;sport SSSS0SSS@ ;j ),,E-*
R )cceso a nuestra ip para gestionarlo
iptables ;) 1!<M)< ;s 71>.1AL.LL.1L ;d 711.8:.1:A.: ;p tcp ;;dport 77 ;j ),,E-*
iptables ;) 1!<M)< ;s 711.8:.1:A.: ;d 71>.1AL.LL.1L ;p tcp ;;sport 77 ;j ),,E-*
RR "ervidor (EM" 711.8:.1:A.L
R )cceso a puerto news
iptables ;) 1!<M)< ;d 711.8:.1:A.L ;p tcp ;;dport news ;j ),,E-*
iptables ;) 1!<M)< ;s 711.8:.1:A.L ;p tcp ;;sport news ;j ),,E-*
R )cceso a nuestra ip para gestionarlo
iptables ;) 1!<M)< ;s 718.1A:.S@.11L ;d 711.8:.1:A.L ;p tcp ;;dport 77 ;j ),,E-*
iptables ;) 1!<M)< ;s 711.8:.1:A.L ;d 718.1A:.S@.11L ;p tcp ;;sport 77 ;j ),,E-*
R El resto, cerrar
iptables ;) 1!<M)< ;d 711.8:.1:A.L ;j <!-
RR "ervidor P7P 711.8:.1:A.S
R )cceso a puerto ::8
iptables ;) 1!<M)< ;d 711.8:.1:A.S ;p tcp ;;dport ::8 ;j ),,E-*
iptables ;) 1!<M)< ;s 711.8:.1:A.S ;p tcp ;;sport ::8 ;j ),,E-*
R )cceso a una ip para gestionarlo
iptables ;) 1!<M)< ;s @1.8:.17A.LS ;d 711.8:.1:A.S ;p tcp ;;dport 88@A ;j ),,E-*
iptables ;) 1!<M)< ;s 711.8:.1:A.S ;d @1.8:.17A.LS ;p tcp ;;sport 88@A ;j ),,E-*
RR "ervidor ,%*<%K 711.8:.1:A.=
R )cceso a puerto 1:A:
iptables ;) 1!<M)< ;d 711.8:.1:A.= ;p tcp ;;dport 1:A: ;j ),,E-*
iptables ;) 1!<M)< ;s 711.8:.1:A.= ;p tcp ;;sport 1:A: ;j ),,E-*
R )cceso a una ip para gestionarlo
iptables ;) 1!<M)< ;s 1AL.LL.78:.7 ;d 711.8:.1:A.= ;p tcp ;;dport 88@A ;j ),,E-*
iptables ;) 1!<M)< ;s 711.8:.1:A.= ;d 1AL.LL.78:.7 ;p tcp ;;sport 88@A ;j ),,E-*
R acceso a otro puerto qui'a de PP
iptables ;) 1!<M)< ;s 1AL.LL.78:.7 ;d 711.8:.1:A.= ;p tcp ;;dport 1:8: ;j ),,E-*
iptables ;) 1!<M)< ;s 711.8:.1:A.= ;d 1AL.LL.78:.7 ;p tcp ;;sport 1:8: ;j ),,E-*
R acceso a otro puerto qui'a de PP
iptables ;) 1!<M)< ;s 1AL.LL.78:.7 ;d 711.8:.1:A.= ;p udp ;;dport 1:88 ;j ),,E-*
iptables ;) 1!<M)< ;s 711.8:.1:A.= ;d 1AL.LL.78:.7 ;p udp ;;sport 1:88 ;j ),,E-*
ec+o J !O . Ierifique que lo que se aplica con0 iptables ;5 ;nJ
R 1in del script
Na esta, +emos levantado un verdadero muro entre internet & el conjunto de servidores que esta
*ras el firewall. (o se puede ni +acer un ping a las mquinas, salvo que se +a&a dado acceso total a
una ip. "i quisieramos dar acceso al ping, pondramos algo as0
Es ms llevadero aplicar el <!- por defecto cuando el firewall es para la propia mquina. El
primer escenario de esta manual trataba sobre este caso, a+ora lo revisamos con la poltica por
defecto drop.
RQ.bin.s+
RR ",<%-* de %-*)P5E" ; ejemplo del manual de iptables
RR Ejemplo de script para proteger la propia mquina
RR con poltica por defecto <!-
ec+o ;n )plicando <eglas de 1irewall...
RR 15U"B de reglas
iptables ;1
iptables ;K
iptables ;6
iptables ;t nat ;1
RR Establecemos politica por defecto
iptables ;- %(-U* <!-
iptables ;- !U*-U* <!-
iptables ;- 1!<M)< <!-
RR Empe'amos a filtrar
R El local+ost se deja 2por ejemplo cone#iones locales a m&sql4
iptables ;) %(-U* ;i lo ;j ),,E-*
iptables ;) !U*-U* ;o lo ;j ),,E-*
R ) nuestra %- le dejamos todo
iptables ;) %(-U* ;s 1AL.SL.8:.78: ;j ),,E-*
iptables ;) !U*-U* ;d 1AL.SL.8:.78: ;j ),,E-*
R ) un colega le dejamos entrar al m&sql para que mantenga la PP
iptables ;) %(-U* ;s 781.:L.18:.78 ;p tcp ;;dport 88>S ;j ),,E-*
iptables ;) !U*-U* ;d 781.:L.18:.78 ;p tcp ;;sport 88>S ;j ),,E-*
R ) un diseHador le dejamos usar el 1*-
iptables ;) %(-U* ;s @>.8=.:L.1A: ;p tcp ;;dport 7>071 ;j ),,E-*
iptables ;) !U*-U* ;d @>.8=.:L.1A: ;p tcp ;;sport 7>071 ;j ),,E-*
R El puerto @> de www debe estar abierto, es un servidor web.
iptables ;) %(-U* ;p tcp ;;dport @> ;j ),,E-*
iptables ;) !U*-U* ;p tcp ;;sport @> ;j ),,E-*
R )qu estn las reglas de cerrar. ,omo +emos comentado en la configuraci$n
R anterior conviene tener esto escrito por si en alg3n momento se relaja el
R firewall & s cambia a de <!- a ),,E-* por defecto
R ,erramos rango de los puertos privilegiados. ,uidado con este tipo de
R barreras, antes +a& que abrir a los que si tienen acceso.
iptables ;) %(-U* ;p tcp ;;dport 101>7:
iptables ;) %(-U* ;p udp ;;dport 101>7:
R ,erramos otros puertos que estan abiertos
iptables ;) %(-U* ;p tcp ;;dport 88>S ;j <!-
iptables ;) %(-U* ;p tcp ;;dport 1>>>> ;j <!-
iptables ;) %(-U* ;p udp ;;dport 1>>>> ;j <!-
ec+o J !O . Ierifique que lo que se aplica con0 iptables ;5 ;nJ
R 1in del script
:. ,$mo depurar el funcionamiento del firewall
-rogramas 3tiles
%-*<)1. "in duda alguna uno de los programas ms prcticos para depurar el firewall es iptables,
&a que con el podemos observar si la cone#iones se establecen o no9 es un programa de consola que
es aconsejable controlar &a que muestra en tiempo real el trfico que atraviesa nuestra mquina con
todo lujo de detalles0 origen.destino de ips & puertos, trfico total o trfico total seg3n el interfa' de
red, etcY "i vemos muc+as cone#iones simultaneas & nos perdemos, e#iste la posibilidad de aplicar
filtros para captar solo aquello que nos interesa.
(/)-. 5a +erramienta para escanear puertos por e#celencia, rec+ace imitaciones. Es una
+erramienta de consola rpida, efectiva & con multitud de opciones. -odemos usarla desde
mquinas ajenas a nuestra red para comprobar si realmente el firewall esta filtrando correctamente &
en cierta manera para +acernos una idea de que Jvisi$nJ pueden tener los +acGers de nuestro
sistema.
"BE55. En el propio script del firewall podemos aHadir algunas opciones para descubrir fallos de
sinta#is en las reglas. ,laro, imaginemos que tenemos un firewall de :> lineas & una de ellas falla
cuando ejecutamos el script. D,ul esE Es probable que el mensaje de error no aclare lo suficiente,
por eso se puede aHadir algo as al final de cada regla0
...
iptables ;) %(-U* ;s 1AL.LL.78:.7 ;j ),,E-* \\ ec+o J regla;71 oGJ
iptables ;) %(-U* ;s 718.S7.@A.1:L ;j ),,E-* \\ ec+o J regla;77 oGJ
...
"i la regla se ejecuta bien mostrar el mensajito de oG.
!tra opci$n algo mas cutre sera ir eliminando o comentando reglas +asta dar con la regla que tiene
la sinta#is incorrecta. ,abe reseHar que puede fallar una regla, pero a partir de ella el resto se
ejecutan con normalidad.

También podría gustarte