IPTables y Shorewall Juan Dez-Yanguas Barber Software de Comunicaciones Ingeniera Informtica - 5 Curso ______________________________________________________________________________________ Jdyb - Mayo 2013 ndice 1. Introduccin 4 2. Cortafuegos personal 5 2.1. Estado inicial de IPTables 5 2.2. Establecimiento de reglas de ltrado sin estado 7 2.2.1. Establecimiento de la poltica por defecto 7 2.2.2. Establecimiento de reglas 8 2.2.3. Comprobacin de la importancia del orden de las reglas 13 2.3. Redireccin de trco 15 2.4. Usar IPTables para protegerse de una enumeracin con NMap 17 2.5. Filtros con estado para ICMP 19 3. Router con funcin de cortafuegos y NAT 22 3.1. Construccin del escenario 22 3.2. Conguracin del escenario 30 3.3. Instalacin de Shorewall 32 3.4. Conguracin de Shorewall 33 3.4.1. Conguracin de zonas 34 3.4.2. Conguracin de polticas 34 3.4.3. Conguracin de reglas 34 3.4.4. Conguracin de las interfaces 35 3.4.5. Conguracin de enmascaramiento 35 3.5. Conguracin de polticas bsicas 36 3.5.1. Conguracin previa del escenario 36 3.5.2. Conguracin de las polticas en Shorewall 37 3.5.3. Enmascaramiento de direcciones 39 Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 2
3.5.4. Conguracin de reglas para las conexiones salientes 42 4. Apartados opcionales 53 4.1. Securizar servidor SSH contra ataques de fuerza bruta 53 4.2. Control y limitacin del ancho de banda 56 Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 3
1. Introduccin En esta prctica se va a tratar el manejo de net lter, llamado ahora IPTables. Es un mdulo incluido dentro de ncleo del sistema operativo. Esto implica que no vamos a tener que instalarlo ni activarlo. No se tiene que activar porque ya viene activo por defecto pero hace el efecto de no estar activo porque sus tablas de ltrado estn todas ellas vacas por defecto y poltica que llevan por defecto es ACCEPT. El sistema de ltrado se compone de una serie de tablas en diferentes etapas, y en cada una de ellas es posible aplicar reglas de diferente tipo, a saber entre reglas de ltrado, reglas de NAT o reglas de manipulacin de paquetes. A continuacin indicamos mediante un esquema las diferentes reglas que son aplicables en cada una de las etapas. Durante el desarrollo de la prctica se har referencia a cada una de las etapas y tablas que se han visto representadas en la gura. Se tratarn dos escenarios, el primero de ellos ser la conguracin de un cortafuegos personal y el segundo de ellos tratar de poner en marcha una mquina con la funcin de reenvo habilitada de manera que actu como un router dentro de la red con funcin de NAT y cortafuegos. PREROUTING FORDWARD Entrega local INPUT POSTROUTING OUTPUT Procesado local NO SI Sistema de Filtrado DNAT Manipulacin (Mangle) SNAT Manipulacin (Mangle) DNAT Manipulacin (Mangle) Filtrado Manipulacin (Mangle) Filtrado Manipulacin (Mangle) Filtrado Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 4
2. Cortafuegos personal En este apartado trataremos el primer escenario comentado anteriormente en el cual usaremos IPTables como ltro de control para lo que entre o salga de nuestro equipo local. 2.1. Estado inicial de IPTables Lo primero que vamos a hacer es comprobar el estado de las interfaces de nuestro equipo que veremos que cuenta con una interfaz virtual, la interfaz fsica y la interfaz de loopback. Es la misma conguracin que hemos usado en anteriores ocasiones. Ahora comprobaremos el estado de IPTables, que veremos que tiene todas las tablas de las cadenas de reglas vacas y con poltica por defecto ACCEPT que es como se encuentra por defecto. Para visualizar el contenido de las tablas lo haremos con el siguiente comando. Si no se especica tabla la que se muestra por defecto es la de ltrado y si no se especica la cadena mostrar todas aquellas en las que este presente la tabla. Por ejemplo, si es la tabla de ltrado mostrar OUTPUT, INPUT y FORWARD. "#$%&'() *+,-#."/0 '")$%12 *0,3-)$1%1 043(1-) 5( #6(1$- ( 78) (0 9(: 5( 5-3"0"-) - #1-$-.-'-)2 Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 5
Mostraremos ahora las reglas de las tablas de NAT para todas las cadenas en las que este presente y veremos que de nuevo no hay regla alguna. Fijndonos en el diagrama de la introduccin vemos que las tablas de NAT se encuentran en la cadena de PREROUTING, POSTROUTING y OUTPUT. Finalmente mostramos las reglas de las tablas de manipulacin o mangle, esta vez la tabla estar presente en todas las cadenas de reglas. De nuevo no habr reglas por defecto y la poltica por defecto ser ACCEPT. Tal como se indic no ha sido necesaria instalacin ni activacin de nada al ser un mdulo del propio ncleo del sistema, solo que al no tener reglas y tener la poltica ACCEPT por defecto no afecta al funcionamiento del sistema en lo que a conexiones se reere. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 6
2.2. Establecimiento de reglas de ltrado sin estado En el enunciado se nos indica que vamos a proceder al establecimiento de reglas sin estado en las cadenas de INPUT y OUTPUT. Lo primero que se har es jar la poltica y posteriormente se jarn las reglas que se nos indican. 2.2.1. Establecimiento de la poltica por defecto Estableceremos en este apartado las polticas por defecto de DROP para las cadenas OUTPUT y INPUT. Esto lo debemos de hacer sobre las tablas de ltrado que son sobre las que estamos trabajando, ya que son las tablas por defecto podremos indicar la tabla en el comando o no hacerlo ya que como se indic se toma por defecto la tabla de ltrado. "#$%&'() *8 ,#-';$".%2 <=>8=> ,.%5(0%2 ?@<8 Hay que tener cuidado en la aplicacin de las reglas en un entorno de produccin, por ejemplo, al haber aplicado esta poltica sin tener ninguna regla de exclusin estbamos conectados por ssh a la mquina y lgicamente la conexin se perdi en el momento de aplicar la regla. Mostramos ahora el resultado de las reglas con los comandos de listado que vimos anteriormente. Sigue sin haber reglas pero ahora la poltica por defecto en la tabla de ltrado para las cadenas de OUTPUT e INPUT son de DROP.
Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 7
La situacin actual se dira que es una situacin de bloqueo total en lo que se reere a conexiones de la mquina. Por ejemplo levantamos el servidor http y el servidor DNS e intentamos conectarnos desde la mquina antriona. 2.2.2. Establecimiento de reglas En el enunciado se nos indica que habilitemos el intercambio de trco ICMP para los equipos de la red local. Esto requerir la habilitacin en direccin entrante y saliente, ya que se requerir que nuestra mquina responda a las peticiones y que tambin le puedan llegar o enviar ella misma. Y solo se debe habilitar para dentro de la propia subred. "#$%&'() *$ A"'$(1 *B ,%C%5"12 <=>8=> *# ,#1-$-.-'-2 ".3# *5 ,5()$"0-2 DEFGDHGDIJGKLFM *N BOOP8> Antes de aplicar las reglas veremos el efecto que se produce, la mquina no puede hacer ping ni recibir ping de otra mquina. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 8
Aplicamos a continuacin las reglas siguiendo la sintaxis indicada anteriormente. La sintaxis debe ser estricta tal como se ha indicado en maysculas y minsculas. Si se intenta ahora el ping se quedar parado porque podr enviar pero no recibir las respuestas. Aplicaremos ahora la regla pero en sentido entrante. A continuacin comprobamos que ahora si se puede enviar pings a otra mquina de la misma subred y que responde a los ping enviados desde una mquina de la misma subred. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 9
Sin embargo comprobamos que no se pueden enviar pings a otra mquina que no est en la subred. A continuacin el enunciado tambin nos indica que habilitemos el trco saliente hacia el puerto 80 TCP. Hay que tener en cuenta que aunque apliquemos la regla el trco web no funcionar porque no est habilitado el trco del DNS ni tampoco est habilitado el trco entrante en otros puertos, de manera que podr enviar la peticin pero la respuesta normalmente se recibe en otros puertos no privilegiados que no son el 80. Si se quiere que el trco web funcione habr que habilitar una regla anloga en sentido entrante que permita el trco TCP originado en el puerto 80. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 10
Probamos a continuacin a lanzar una peticin a google pero por la direccin IP y no por el dominio. Si lo hacemos por el nombre de dominio no podr resolverlo porque no se ha habilitado el trco saliente DNS ni tampoco entrante. Vamos a habilitar ahora el trco DNS para comprobar que funcione correctamente. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 11
Si queremos que desde la mquina local se pueda acceder al servidor web de la mquina virtual con esta conguracin no debera ser posible ya que no se ha habilitado el trco entrante que tenga como destino el puerto 80 TCP ni el puerto 53 UDP para el DNS. Finalmente en el enunciado se nos pide que se permitan conexiones entrantes hacia el puerto 22 que es el puerto de SSH. Con esta regla pasar lo mismo que en anteriores ocasiones, no se deja salir el trco con origen en el puerto 22 por lo que no podr establecerse una conexin ssh hacia la mquina. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 12
Para que funcione ejecutaremos la siguiente regla. Y comprobamos que la conexin desde el cliente se establece correctamente. Se muestra nalmente el resultado de todas las reglas aplicadas en este apartado. 2.2.3. Comprobacin de la importancia del orden de las reglas Se nos pide que partamos de una conguracin sin ltrado, para ello borraremos la tabla de ltrado y jaremos las polticas por defecto en ACCEPT. La opcin -F se indica para borrar por completo la cadena de reglas, no se ha indicado en los comandos la tabla porque la tabla de ltrado es la que se toma por defecto como se ha indicando en ocasiones anteriores. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 13
No hemos hablado anteriormente del orden de las reglas porque no era necesario, eran todas las reglas de diferentes protocolos. Las reglas son evaluadas en orden, por lo que si se ponen primero las ms restrictivas no se conseguir el efecto deseado. Veamos un ejemplo. Queremos bloquear todo el trco saliente TCP salvo el dirigido a una direccin concreta de nuestra subred. Nos quedamos como era lgico de nuevo sin la conexin ssh. Con esta ltima regla se habilita el trco saliente TCP hacia la mquina antriona. Pero veremos que la realidad es otra, no vamos a poder establecer una conexin SSH desde la mquina antriona. Y eso es porque primero est la regla ms restrictiva, establecer una conexin SSH coincide con la primera regla y no se sigue evaluando. Por tanto si se quiere que funcione se deben de aplicar primero las reglas ms especcas. Ahora la conexin SSH si debera de funcionar desde la mquina antriona. Probamos a establecer una conexin SSH desde otra mquina de la misma subred y observaremos que no funciona, podr aceptar la conexin porque tiene poltica ACCEPT y la peticin llegar pero no se podr establecer porque la respuesta nunca podr salir. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 14
2.3. Redireccin de trco En este apartado se nos pide que se redirija todo el trco web que se realice con destino www.ceu.es, hacia otro servidor web externo como por ejemplo www.google.es. Lo ms adecuado para esto ser aplicar reglas de NAT en la cadena de reglas OUTPUT, que si nos jamos en el diagrama ser la que est en la salida del equipo local. Y en ese momento cambiaremos la direccin de destino por la que nosotros deseemos. Esta vez en las reglas si que tendremos que especicar la tabla de la regla puesto que no va a ser la de ltrado sino la tabla de NAT. "#$%&'() *$ 0%$ *B <=>8=> *# $.# **5#-1$ IK *5 QQQG.(6G() *N ?RB> **$-*5()$"0%$"-0 DEJGDSMGJMGFDHTIK Hacemos la prueba a continuacin. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 15
Se podra haber aplicado la regla tambin por la direccin ip de destino en vez de por el dominio que sera mejor si por cualquier motivo se bloqueara al servicio DNS. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 16
2.4. Usar IPTables para protegerse de una enumeracin con NMap En este apartado se nos indica que probemos a identicar el sistema operativo de la mquina virtual usando NMAP desde otra mquina. Para posteriormente aplicar una regla con estado que prohiba las conexiones TCP invlidas y ver posteriormente el efecto de la regla en la ejecucin de NMap. NMap analiza las respuestas del objetivo ante patrones de ataque que enva, lo que hace es enviar muchas peticiones de varios tipos, ya sean normales o mal formadas (no empezando como una peticin TCP normal que ha de empezar con SYN). Y ante el patrn de respuesta a dichas peticiones puede saber el sistema operativo y otros datos en base a una base de datos de patrones de respuesta. El comando a ejecutar para que se obtenga el sistema operativo es el siguiente. 03%# *< DEFGDHGDIJGDKK No obstante parece que no se ha detectado el sistema operativo como se esperaba, posiblemente la versin de CentOS que estamos usando no estn en los listados de patrones de respuesta de NMap. Hay que tener en cuenta que hemos lanzado la deteccin sobre una mquina que no tiene levantados servicios salvo el SSH, lo cual dicultar ms la deteccin lgicamente. Con este ejercicio se pretenda que se mostrase como despus de introducir una regla con estado en IPTables se dejase de detectar el sistema operativo ya que se rechazaran las peticiones TCP mal formadas, de manera que al no detectarse ni siquiera sin ltro alguno, se puede decir que no se va a ver el resultado completo que se pretenda Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 17
con el ejercicio. No obstante a continuacin vamos a mostrar el comando que se debera de introducir para el ltro con estado. IPTables clasica los paquetes en varios estados posibles, para ello se basa en analizar las conexiones TCP y tambin las conexiones producidas a la vez, por ejemplo FTP tiene una conexin de control y otra de datos.
NEW: Intentando abrir una nueva conexin.
ESTABLISHED: Parte de una conexin ya existente.
RELATED: Relacionada aunque no realmente parte de una conexin existente
(ejemplo de FTP).
INVALID: No es parte de una conexin existente e incapaz de crear una conexin
nueva. Si lo que queremos es evitar que se abran conexiones TCP invlidas contra nuestro servidor lo que haremos ser establecer un ltro con estado que obligue a que las conexiones se inicien siempre con un segmento SYN. El comando indicado a continuacin indica que se ha de tirar cualquier conexin en el estado NEW que no sea un segmento SYN. "#$%&'() *B 7R8=> *# $.# U **)V0 *3 )$%$( **)$%$( RPW *N ?@<8 Volvemos a lanzar el comando Nmap pero como ya antes no se detect el sistema operativo poca diferencia observaremos ahora. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 18
Aunque el caso de prueba no ha funcionado de la manera que se esperaba con lo que hay que quedarse es con el concepto de ltros con estado y el comando que se ha introducido para rechazar las conexiones TCP invlidas. 2.5. Filtros con estado para ICMP En este ejercicio se nos pide que se parta de una conguracin sin ltros y con poltica por defecto de DROP. Posteriormente una vez que est todo el trco bloqueado se pide denir reglas con estado que permitan el trco ICMP siempre que sea iniciado por nosotros o relacionado con nuestras conexiones. Lo primero borramos la tabla del ejercicio anterior y aplicamos la poltica DROP por defecto en las cadenas de reglas INPUT y OUTPUT. Con el primer comando mostrado a continuacin permitiremos todas las conexiones ICP salientes, por tanto podremos establecer nuevas conexiones, abrir otras relacionadas o que formen parte de la conexin activa. Con la segunda regla permitimos que nos lleguen conexiones ICMP pero solo las respuestas a las nuestras, no se permite que se establezca una nueva conexin contra nosotros (no incluido en la regla pero la poltica es DROP) "#$%&'() *B <=>8=> *# ".3# *3 )$%$( **)$%$( RPWXPY>BZ+7Y[P?X@P+B>P? *N BOOP8> "#$%&'() *B 7R8=> *# ".3# *3 )$%$( **)$%$( PY>BZ+7Y[P?X@P+B>P? *N BOOP8> Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 19
Si establecemos una nueva conexin desde la mquina antriona a la mquina virtual no debe ser permitido ya que no se permiten conexiones nuevas en sentido entrante. Sin embargo si abrimos la conexin desde la mquina virtual si se recibirn las conexiones entrantes que son respuesta.
Finalmente visto que funciona vamos a borrar las reglas y poner poltica por defecto ACCEPT de una manera distinta a como lo hemos estado haciendo. En CentOS se dispone de un script para realizar acciones con iptables como por ejemplo borrar las reglas, exportarlas o restaurarlas. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 20
Ahora si que podemos abrir una conexin SSH y veremos como las reglas se han borrado y las polticas son ACCEPT. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 21
3. Router con funcin de cortafuegos y NAT Esta ser la segunda parte de la prctica en la que vamos a tener una mquina con funcin de reenvo de trco e iptables habilitado en ella aplicando reglas en el reenvo de paquetes. Esta mquina tendr dos interfaces de red en dos sub-redes diferentes, en cada una de las sub-redes tendremos otra mquina virtual. Por tanto vamos a trabajar con tres mquinas virtuales en este apartado. Para la realizacin de este apartado se usar shorewall que es una herramienta que traduce reglas a ms alto nivel en un chero de conguracin a reglas de IPTables, esto se hacer porque en el entorno en que vamos a trabajar es bastante ms complejo que en el caso anterior y si ya vimos que se complicaba anteriormente teniendo que estar atento no solo a la apertura de conexiones sino a las respuestas y los puertos en que son originadas. Este escenario ser mucho ms complejo al pasar conexiones entre distintas subredes y otros aspectos. 3.1. Construccin del escenario En este apartado vamos a construir el escenario descrito anteriormente. Lo considero lo sucientemente complejo como para explicar la construccin del mismo y hacer las pruebas pertinentes de su funcionamiento. Lo primero que se va a hacer es disponer de varias mquinas virtuales como ya se ha comentado, han de ser tres. La primera de ellas que ser la que normalmente hemos estado usando ser la que va a actuar como router. Lo primero que tendremos que hacer es aadir una segunda interfaz fsica mediante las opciones de VMWare, la segunda interfaz que aadamos debe de estar en modo Host-Only para que este una subred diferente. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 22
Reiniciamos ahora el servicio de red de la mquina virtual y se deben de ver las dos interfaces fsicas cada una en una subred diferente. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 23
El siguiente paso ser arrancar una segunda mquina virtual que se situe dentro de la subred 172.16.183.0/24 que ser nuestra red privada. Para ello esa mquina debe de tener la conguracin de red en modo NAT. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 24
Si observamos la direccin IP veremos que est dentro de la subred indicada.
Pasaremos ahora a la conguracin de la tercera y ltima mquina virtual, sta deber estar en la subred que vamos a llamar pblica que ser la 172.16.212.0/24, para ello deber estar dentro de la subred que crea VMWare para las mquinas con la interfaz de red en modo HostOnly. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 25
En este momento el escenario estar congurado correctamente. Tenemos una mquina virtual que se usar como router con interfaces en la red pblica y en la red privada y en cada una de esas redes tenemos una mquina virtual con una interfaz que tienen asignada una direccin IP de la subred correspondiente. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 26
Ahora mismo debera poderse hacer un ping desde y hacia cada una de las mquinas de la misma subred pero no podr hacerse desde una mquina de una subred hacia otra mquina de diferente subred ya que la mquina que actuar como router no tiene habilitada la funcin de reenvo. Esta funcin deber ser habilitada. Comprobamos ahora que podemos hacer ping con xito en la red privada entre las dos mquinas que hay en la misma que son la mquina virtual y la interfaz de la mquina virtual que actuar como router. Realizaremos el mismo proceso dentro de la red pblica comprobando que las dos mquinas se puede hacer ping entre s. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 27
Finalmente otro aspecto a comprobar es que si no se aade ninguna ruta en la tabla de de rutas de la mquina que har la funcin de router en este momento de la conguracin no se debera poder alcanzar la subred privada desde la red pblica. A la inversa si que podr ser porque al estar en NAT la red privada, las interfaces de la misma tienen una puerta de acceso que ser el router de VMWare el cual les permitir llegar. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 28
En este momento se tiene ya congurado el escenario que se nos pide a falta de hacer algunas conguraciones en las mquinas para habilitar el encaminamiento entre las dos redes. Dado que hasta ahora lo hemos explicado todo mediante texto vamos a proponer un grco donde se explica la conguracin actual de la que disponemos. Privada 172.16.183.0/24 Pblica 172.16.212.0/24 Router eth0: 172.16.183.100 eth1: 172.16.212.129 VM Red Privada eth0: 172.16.183.200 VM Red Pblica eth0: 172.16.212.131 Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 29
3.2. Conguracin del escenario Ahora lo que falta ser completar la conguracin del escenario construido. Para ello lo que haremos es congurar en la Mquina virtual de la red privada la direccin IP de eth0 en la mquina que actuar de router como puerta de enlace. El siguiente paso ser habilitar el reenvo de paquetes en la mquina virtual que actuar como router. Para ello nos podemos encontrar con varias formas, por ejemplo en Mandriva se puede hacer modicando el chero de conguracin /etc/syscong/network, y aadiendo una nueva variable FORWARD_IPV4. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 30
En nuestra distribucin que es CentOS este mismo chero existe, pero al reiniciar el servicio de red no se habilita la variable de sistema correspondiente al reenvo de paquetes /proc/sys/net/ipv4/ip_forward. Se puede visualizar el contenido de la variable con un comando cat. En nuestra distribucin habr que hacerlo en la conguracin del sistema situada en el chero /etc/sysctl.conf. En la lnea net.ipv4.ip_forward, se debe asignar a esta variable el valor binario 1, tal como se puede apreciar en la captura de pantalla. Si visualizamos ahora la variable que hemos mencionado anteriormente despus de reiniciar el servicio de red podemos observar como ahora si est habilitada. La mquina de la red pblica seguir sin tener conexin con la red privada debido a que no tiene puerta de enlace. De momento no la pondremos puesto que la manera correcta de alcanzar este puesto ser haciendo NAT, que como veremos se nos pedir prximamente en el enunciado. Por otra parte, aunque no conguremos este parmetro, cuando pasemos a los siguientes apartado en los que se usa Shorewall veremos que funciona igualmente, pero ser porque en la conguracin de shorewall hay un parmetro para ajustar esto, de manera que cuando shorewall se active se activar el forwarding de paquetes. Aunque despus explicaremos los cheros de conguracin de shorewall, este parmetro lo podemos encontrar en el chero /etc/shorewall/shorewall.conf. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 31
3.3. Instalacin de Shorewall Para la instalacin de Shorewall nos hemos de dirigir al directorio donde nuestra mquina virtual tiene los paquetes instalables que ser /usr/local/src/shorewall. Vemos que tenemos varios paquetes de instalacin rpm, el principal de shorewall y tambin disponemos de las dependencias del mismo. Instalaremos todos los paquetes. Lo haremos de la misma manera que hemos instalado paquetes otras veces, con el comando rpm. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 32
3.4. Conguracin de Shorewall En este apartado describiremos la conguracin de shorewall para posteriormente empezar a congurarlo deniendo las reglas que se nos vayan pidiendo en el enunciado. Los archivos de conguracin estarn situados en el directorio /etc/shorewall. Como vemos el directorio tiene numerosos cheros, pero nosotros nos centraremos en seis de ellos que sern los cheros de conguracin.
zones: Archivo de conguracin para denir las zonas
policy: Archivo para denir las polticas por defecto
rules: Fichero de denicin de reglas
masq: Para la conguracin del enmascaramiento
interfaces: Para la identicacin de las interfaces
shorewall.conf: Conguracin general
Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 33
3.4.1. Conguracin de zonas Lo primero que haremos ser congurar las zonas en el archivo correspondiente. Cuando lo abramos nos encontraremos que ya tiene una zona dentro del mismo llamada fw, esta zona hace referencia al mismo equipo. Nosotros tendremos que aadir dos zonas ms, la zona local o zona de la red privada y la zona pblica. 3.4.2. Conguracin de polticas En este paso explicaremos el archivo de polticas. Este archivo es usado para establecer polticas por defecto en el paso de los paquetes de una zona a otra. Es decir, habr una poltica a aplicar por ejemplo en el paso de la zona privada a la zona pblica, otra poltica en el sentido inverso, etc... Tambin es posible establecer en este chero de conguracin el nivel de registro de la actividad (logs), la tasa de conexiones permitidas, tamao mximo de las rfagas y nmero mximo de conexiones permitidas simultneamente. 3.4.3. Conguracin de reglas En este chero se establecen reglas que actuarn como excepciones a las polticas establecidas en el chero de polticas, cumplen la misma funcin que las reglas de IPTables. Basndose en un origen y destino de las conexiones y otros parmetros como el protocolo, el puerto, o las direcciones IP establecer reglas ms especcas. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 34
3.4.4. Conguracin de las interfaces En este archivo se conguran las interfaces del equipo asocindolos a las zonas en que estn presentes. Tambin se indican en este archivo otros parmetros como sus direcciones de difusin y conguraciones como dhcp si se usa en la subred que gestiona. A continuacin mostramos una conguracin vlida para nuestro escenario. 3.4.5. Conguracin de enmascaramiento En el archivo masq se establece en enmascaramiento de direcciones IP en el trco que atraviesa algunos de los interfaces del cortafuegos. Las conguraciones se pueden establecer el enmascaramiento por direcciones IP o especicando la interfaz en la que va a ser enmascarado. Veremos ejemplos en el apartado correspondiente. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 35
3.5. Conguracin de polticas bsicas En este apartado se llevar a cabo la conguracin de algunas polticas bsicas que se nos describen en el enunciado.
Es aceptado el trco local hacia el exterior.
Est prohibido el trco entrante desde el exterior.
Se acepta el trco saliente desde el cortafuegos hacia cualquier zona.
Se acepta trco entrante al cortafuegos desde la red local.
3.5.1. Conguracin previa del escenario Lo primero que vamos a hacer es poner como puerta de enlace por defecto al router en la mquina de la subred pblica porque sino no vamos a ser capaces de probar la correcta conguracin ya que la mquina del exterior no va a poder llegar a la red privada no porque est impedido sino por problemas de conectividad. Esto no ser en una situacin normal lo ms adecuado, lo ms adecuado sera usar NAT. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 36
3.5.2. Conguracin de las polticas en Shorewall Con el objetivo de cumplir las especicaciones enunciadas anteriormente vamos a congurar el chero policy en situado en /etc/shorewall/policy para establecer las polticas. Ahora pasamos a aplicar las reglas con el script de shorewall. Observamos que ha fallado y vamos al log del sistema para observar que es lo que ha ocurrido. Nos indica que el inicio de shorewall est deshabilitado y tenemos que habilitarlo en el chero de conguracin general. Esta variable que se nos pide activar est puesta como seguridad para evitar que shorewall sea activado accidentalmente antes de ser congurado. Hay que tener en cuenta que un inicio accidental de shorewall en un sistema administrado remotamente si las reglas no estn conguradas correctamente te puede dejar sin la conexin remota. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 37
Se puede comprobar que la conguracin que permite trco local hacia el servidor del rewall se ha establecido correctamente porque no se ha perdido la conexin SSH mediante la cual estamos administrando la mquina. Comprobamos ahora que no hay comunicacin desde el exterior a la red local ni al cortafuegos. Si que hay comunicacin desde el interior de la red local hacia el exterior, haciendo ping a la red pblica. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 38
Tambin hay comunicacin desde el cortafuegos hacia cualquier zona. 3.5.3. Enmascaramiento de direcciones En este apartado se pretende enmascarar direcciones desde la red interior hacia la red exterior. De manera que si por ejemplo la mquina de la red privada quieres salir al exterior la direccin origen de esos paquetes ser la de la interfaz pblica del cortafuegos. Para la realizacin de esta conguracin editaremos el archivo /etc/shorewall/ masq. Como ya comentamos se puede hacer basado en las direcciones o en las interfaces, de manera que lo podremos congurar de dos formas posibles. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 39
Se reinicia shorewall para activar las nuevas reglas de enmascaramiento. Para comprobar la correcta conguracin vamos a dejar la mquina de la red privada enviando pings hacia el exterior en concreto a la direccin 172.16.212.131. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 40
trco de la interfaz eth0 con tcpdump. Con el comando vamos a ltrar los que provengan de la misma mquina para ver ms clara la salida del comando. $.#563# *" ($\K )1. \-)$ DEFGDHGDIJGFKK Observamos una peticin Echo desde la direccin local a la direccin pblica, tal como habamos hecho el ping. Ahora pondremos en marcha de la misma manera el tcpdump en la interfaz eth0 en la mquina de destino pblica, en ella se tienen que ver peticiones Echo con destino ella misma pero con direccin origen 172.16.212.129. $.#563# *" ($\K Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 41
Con esto se comprueba que el enmascaramiento de direcciones est funcionando correctamente. 3.5.4. Conguracin de reglas para las conexiones salientes En este apartado se nos pide implantar una serie de reglas para las conexiones salientes de la red privada de manera que la salida est ms restringida. Conguracin de la poltica por defecto Lo primero que se nos indica es que por defecto las salidas van a estar rechazadas exceptuando una serie de servicios, por tanto lo primero que haremos ser cambiar la poltica por defecto a REJECT (ms adecuado su uso en el interior ya que devuelve un rechazo). Tambin se pide en el enunciado que se impida el trco entrante desde el exterior, que se acepte el trco saliente del cortafuegos hacia cualquier zona y nalmente que el cortafuegos acepte trco entrante hacia si mismo desde la red local. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 42
Aunque hayamos aplicado polticas aqu por peticin expresa en el enunciado lo normal sera restringir todo como se indica en el regla nal que en este caso se ha puesto para que no se dejara de contemplar nada y que lo que se haya quedado sin contemplar sea denegado. Como digo, no este el uso normal del chero de polticas, sino que se suele denegar todo como indico a continuacin y todas las comunicaciones que se quieran permitir se indican mediante reglas en el chero correspondiente. Al estilo de como se haca con las polticas de las tablas de iptables. Las peticiones que vengan de Internet al resto de las zonas de desprecian sin ms, mientras que las comunicaciones en el resto de las zonas de indica la denegacin dando informacin y evitando los timeout. De manera que es ms elegante al comportarse de manera diferente para tus usuarios que para el resto de Internet Observemos que ahora no es posible hacer un ping desde la red privada hacia el exterior (despus de haber reiniciado Shorewall). Se nos da un mensaje de error proveniente del cortafuegos, y ello es debido a haber puesto como poltica por defecto REJECT en vez de DROP, su hubiramos puesto DROP no devolvera respuesta alguna, simplemente tirara los paquetes sin responder a ellos.
Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 43
Conguracin de las reglas Una vez que la poltica ha sido cambiada nos dirigiremos al chero de reglas en el que especicaremos reglas especcas para los requisitos que el enunciado nos indicar. El chero que editaremos estar situado en el directorio /etc/shorewall/rules. Se nos pide que habilitemos la sida de una serie de servicios como por ejemplo http, https, SMTP, etc... En el chero de conguracin vemos que se establece el origen y destino y vemos que en el caso de los puerto podemos poner tanto el puerto especco como el nombre del servicio. Aadimos tambin la posibilidad de usar ICMP hacia el exterior ya que es ms fcil hacer as las pruebas. Reiniciamos Shorewall para aplicar las reglas y pasamos a realizar las pruebas pertinentes. Probamos en primer lugar a realizar el ping que probamos anteriormente desde la red privada hacia el exterior y vemos que funciona correctamente. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 44
Levantamos un servidor web en la mquina de la red pblica para comprobar que funciona tambin la salida de la red privada para hacer consultas a pginas web. Nos situamos en la mquina de la red privada e intentamos visitar una web en la direccin 172.16.212.131 que es la mquina de la red pblica. Observamos que la conguracin ha sido correcta ya que se ha mostrado la pgina que se esperaba, que ha sido un index.html que hemos situado en el servidor web recin levantado en la mquina pblica. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 45
Conguracin de Port Forwarding En el enunciado tambin se nos indica que hagamos pblico algn servicio de la red privada hacia el exterior. Por ejemplo un servidor web que se levante dentro la mquina de la red privada al que se pueda entrar desde una mquina de la red pblica. Para que esto sea posible las peticiones enviadas a la direccin pblica de la red privada (172.16.212.129) y al puerto 80 sern redirigidas a la direccin IP del servidor web en el puerto 80. Esto recibe el nombre de port-forwarding. Con la regla indicada lo que hacemos es especicar un cambio en la direccin de destino mediante el uso de Destination-NAT (DNAT) para las peticiones que vayan dirigidas al puerto 80 de la direccin pblica de la red privada y su destino pasar a ser el de la mquina 172.16.183.200 (manteniendo el mismo puerto). Lo primero que vamos a hacer para probar la conguracin ser eliminar la puerta de enlace por defecto de la mquina pblica ya que al haber implementado DNAT ya puede alcanzar la red privada sin problemas (en las conexiones para las que haya DNAT). Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 46
Ahora en la conguracin del router reiniciamos shorewall para aplicar la regla congurada, y en la mquina privada 172.16.183.200 hemos de levantar un servidor web. Ahora en la mquina pblica intentamos acceder a la direccin pblica de la red privada desde un navegador. Se nos debe de mostrar una pgina web creada en un index.html sobre el servidor web que se ha levantado en la mquina privada. Con esta prueba queda comprobado que la regla de DNAT est funcionando correctamente. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 47
Conguracin de acceso va SSH al cortafuegos desde el exterior En este apartado se pretende congurar un acceso SSH al servidor en el cual est implementado el cortafuegos, pero desde el exterior, recordemos que la poltica para estos casos era DROP. Tambin se especica que el acceso solo se permita desde una direccin de la red pblica concreta. Para realizar esta conguracin acudiremos de nuevo al chero de reglas. Reiniciamos shorewall para aplicar la nueva regla. Comprobamos su correcto funcionamiento y vemos que el funcionamiento es correcto. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 48
Si queremos probar que de verdad solo se admite la conexin SSH desde la mquina que hemos especicado podemos levantar una cuarta mquina en la red pblica, que deber estar con la interfaz en modo Host Only. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 49
Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 50
Redireccin del trco DNS En este caso se nos indica que todo el trco DNS saliente se debe redirigir a un servidor DNS externo concreto. Por ejemplo, todas las peticiones DNS que se hagan desde la red local van a ser redirigidas al DNS 8.8.8.8 que es el DNS de google. Esto lo haremos mediante DNAT, las peticiones que vengan desde la red privada al puerto 53 UDP sern redirigidas a la IP 8.8.8.8 en el mismo puerto. No se incluye el puerto 53 TCP porque las peticiones DNS no lo usan, solo se usa para sincronizacin entre servidores DNS. El ejemplo que hemos puesto no va a funcionar porque en nuestro esquema consideramos como net una red del entorno virtual de VMWare que no tiene salida al exterior. Pero si que vemos la conguracin que se ha de aplicar. Por no levantar un servidor DNS y congurar zonas en el equipo de la red pblica vamos a hacer el mismo ejemplo con un servidor HTTP que es ms fcil de arrancar. En el chero de conguracin de reglas podremos una lnea de conguracin parecida tal como se muestra en la siguiente captura, la nica diferencia es que ahora se dirigirn las peticiones a la direccin IP de la mquina virtual en la red pblica, en cuanto el protocolo ser el protocolo TCP por el puerto 80 que es por donde se realiza el trco HTTP. Ahora con la nueva regla introducida despus de reiniciar shorewall para aplicar las reglas lo que veremos es que cualquier trco web originado en la subred privada nos llevar a la direccin IP indicada. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 51
Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 52
4. Apartados opcionales 4.1. Securizar servidor SSH contra ataques de fuerza bruta El enunciado nos pone bajo el supuesto de que tenemos un servidor ssh que est siendo atacado con intento de obtener las contraseas mediante fuerza bruta, para lo cual se estn registrando peticiones de acceso continuas al mismo. Para evitar esto se puede tratar de reducir el nmero de accesos por direccin IP. Con el siguiente comando estaramos reduciendo el nmero mximo de conexiones paralelas al servidor por la direccin del cliente. "#$%&'() *B 7R8=> *# $.# **)V0 **5#-1$ FF *3 .-00'"3"$ **.-00'"3"$* %&-9( J *N @P]PO> "#$%&'() *B 7R8=> *# $.# **)V0 **5#-1$ IK *3 .-00'"3"$ **.-00'"3"$* %&-9( FK **.-00'"3"$*3%)^ FM *N ?@<8 connlimit-above: Si el nmero de conexiones existentes es mayor que lo indicado. connlimit-mask: Para aplicar la regla por un grupo de hosts, el nmero indica la longitud de la mscara. Si lo que queremos es poder limitar las conexiones en el tiempo podemos usar el mdulo recent el cual permite monitorizar conexiones recientes con lo cual podramos limitar el nmero de intentos por minuto por ejemplo. Necesitaremos dos comandos. "#$%&'() *B 7R8=> *# $.# **)V0 **5#-1$ FF *3 )$%$( **)$%$( RPW *3 1(.(0$ **)($ "#$%&'() *B 7R8=> *# $.# **)V0 **5#-1$ FF *3 )$%$( **)$%$( RPW *3 1(.(0$ **6#5%$( **)(.-05) HK **\"$.-60$ M *N ?@<8 El primer comando tomar las peticiones de inicio de sesin a SSH y al haber puesto el ag SET nos asegura que tomar las direcciones IP de los clientes y las aadir a la lista de direcciones recientes que necesita el mdulo recent para poder comprobar las conexiones recientes. La segunda regla es donde ocurrir el ltrado. El ag UPDATE comprobar si las direcciones IP de las nuevas conexiones al puerto 22 ya existen en la lista de conexiones recientes. El ag SECONDS establece el intervalo de tiempo en segundos. Finalmente la opcin HITCOUNT establece el nmero de ocurrencias que debe haber de este tipo de paquetes para aplicar la accin de la regla. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 53
Resumiendo, la segunda regla har un DROP de una conexin si la direccin IP que inicia la conexin ya est en la lista de recientes, ha mandado algn paquete en los ltimos 60 segundos y esos paquetes enviados han sido ms de 4 en total. Respecto a limitar el nmero mximo de intentos de login por cada sesin ya no es algo que se pueda hacer con iptables, es ms bien algo propio de SSH por tanto este ajuste lo realizaremos mediante las conguraciones de OpenSSH, lo haremos con la opcin MaxAuthTries. Es interesante aplicar esto porque si por ejemplo limitamos a dos los intentos ya no se puede intentar ms veces en la misma conexin por lo que se tendr que abrir otra y en pocas ms que lo intente ya ser restringido por las propias reglas de iptables que hemos especicado anteriormente. Hemos congurado los comandos de iptables que hemos indicado como se puede mostrar en la siguiente captura. Tambin hemos realizado la conguracin de mximo dos intentos de login en el chero de conguracin de SSH y hemos reiniciado el servicio. Ahora realizamos varios intentos de login continuos y comprobamos el efecto que han tenido las reglas conguradas. Veremos que no nos deja ms que dos intentos por conexin y no nos dejar intentarlo ms de tres veces. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 54
Tambin disponemos de la opcin MaxStartups que limita el nmero mximo de pantallas de login o conexiones simultneas de login. Si bien es cierto que una vez que la sesin haya sido iniciada se pueden tener ms terminales de ssh, el nmero se reere solo a pantallas de login. Por tanto como vemos se puede proteger el acceso a servidor ssh contra ataques de fuerza bruta con unos pocos ajustes. La informacin referente a los comando de IPTables para este apartado ha sido obtenida de la siguiente pgina web: http://soi57.net/blog/iptables-para-limitar-el-numero- de-conexiones-entrantes/. Por otra parte se ha encontrado en esta otra pgina web las opciones para securizar SSH mediante la conguracin del mismo servidor: http:// www.linuxtotal.com.mx/index.php?cont=info_seyre_004. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 55
4.2. Control y limitacin del ancho de banda Gracias a la funcin de modicacin de iptables es posible usarlo para marcar la cabecera de determinados paquetes atendiendo a condiciones como las que se han visto durante el desarrollo de la prctica. Posteriormente, una vez han sido marcados los paquetes es posibles usar Trafc Control (TC) para aplicar restricciones de ancho de banda a las clases identicadas. Conguracin de Trafc Control Supongamos una interfaz eth4 de un router en el ejemplo que trataremos. Vamos a crear dos clases de trco 1:10 y la 1:12, por defecto todo el trco se dirige a la de menor prioridad que es la ltima mencionada. La primera mencionada que es la clase 1:10 tiene una mayor prioridad, si hay algo pendiente de enviar en esta clase ser enviado por encima de la clase 1:12. Por otra parte la clase de trco 1:10 tiene un ratio de 100kbit, aunque puede usar todo el ancho de banda de 1500kbit compartindolo con la clase 1:12. El trco UDP (protocolo 0x11 0xff de la cabecera IP) ser puesto en la clase de prioridad mxima 1:10, lo que ser bueno para juegos en primera persona para asegurar una latencia baja y que no se vea perjudicado por el trco de menor prioridad. Llegados a este punto se puede ver que se han creado dos canales de salida de diferentes prioridades, sabiendo que el de mayor prioridad puede llegar a perjudicar al de menor prioridad tal y como se desea. El problema es que tanto el trco de baja prioridad como el de alta prioridad pueden ser perjudicados por ujos de gran ancho de banda, causando que otros ujos de la misma prioridad se vean perjudicados por estos. Para poner solucin al problema planteado se aaden dos colas SFQ (Stochastic Fairness Queueing) a las clases de baja prioridad y alta prioridad para asegurar que los ujos individuales de trco son identicados y cada uno de ellos cuenta con la misma oportunidad de enviar sus datos de las respectivas clases. Esto debera evitar el problema de inanicin dentro de las mismas clases. SFQ es un algoritmo de la familia de Fair Queing, menos preciso que otros pero por otra parte con menor necesidad de clculo. Estas colas dividen por conversaciones o ujos TCP, lo que hace que se cree un gran conjunto de colas FIFO, una por cada conversacin, dando la misma oportunidad a las conversaciones, lo que evita como se ha comentado que se provoque inanicin entre distintas conversaciones de la misma prioridad. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 56
3-5(3"A_($\M $. `5"). %55 5(9 a3-5(3"A 1--$ \%05'( DT \$& 5(A%6'$ DF $. .'%)) %55 5(9 a3-5(3"A #%1(0$ DT .'%))"5 DTD \$& 1%$( DbKK^&"$ .("' DbKK^&"$ &61)$ DK^ $. .'%)) %55 5(9 a3-5(3"A #%1(0$ DTD .'%))"5 DTDK \$& 1%$( EKK^&"$ .("' DbKK^&"$ #1"- D &61)$ DK^ $. .'%)) %55 5(9 a3-5(3"A #%1(0$ DTD .'%))"5 DTDF \$& 1%$( IKK^&"$ .("' IKK^&"$ #1"- F $. A"'$(1 %55 5(9 a3-5(3"A #1-$-.-' "# #%1(0$ DTK #1"- D 6JF 3%$.\ "# #1-$-.-' KcDD KcAA A'-Q"5 DTDK $. `5"). %55 5(9 a3-5(3"A #%1(0$ DTDK \%05'( FKT )A` #(1$61& DK $. `5"). %55 5(9 a3-5(3"A #%1(0$ DTDF \%05'( JKT )A` #(1$61& DK Conguracin de IPTables En lo referido a la conguracin de iptables hemos aadido las reglas en la etapa de POSTROUTING. Esto permite modicar los paquetes antes de que sean encolados para su envo por una determinada interfaz de salida, y esto es justo lo que nos interesa. En ese punto los paquetes pueden haber sido generados en la propia mquina localmente o provenir de otra mquina y estar ah para ser reenviados, independientemente de que estn preparados para salir por la misma interfaz (eth4 en este caso). Pasarn todos ellos por la cadena de mangle de esta etapa y ser ah donde se clasique el trco y se realicen otros ajustes. En las reglas de iptables que vamos a ver a continuacin se puede ver que todo el trco es ajustado con el ag de mnimo retardo "minimize-delay (trco ssh interactivo por ejemplo) en las clases de alta prioridad. Tambin todo el trco HTTP, HTTPS, y DNS TCP ser clasicado como de alta prioridad. Recordando tambin que todo el trco UDP ser de alta prioridad, lo que incluir todo el trco DNS UDP. 3-5(3"A_($\M "#$%&'() *$ 3%0d'( *B 8<Y>@<=>7Re *- a3-5(3"A *# $.# *3 $-) **$-) f"0"3":(*?('%V *N O+BYY7gh **)($*.'%)) DTDK "#$%&'() *$ 3%0d'( *B 8<Y>@<=>7Re *- a3-5(3"A *# $.# **5#-1$ bJ *N O+BYY7gh **)($*.'%)) DTDK Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 57
"#$%&'() *$ 3%0d'( *B 8<Y>@<=>7Re *- a3-5(3"A *# $.# **5#-1$ IK *N O+BYY7gh **)($*.'%)) DTDK "#$%&'() *$ 3%0d'( *B 8<Y>@<=>7Re *- a3-5(3"A *# $.# **5#-1$ MMJ *N O+BYY7gh **)($*.'%)) DTDK Por la informacin que se ha podido obtener a estas reglas las deberan acompaar otras bajo las mismas condiciones en la tabla de ltrado porque estas reglas aplican las modicaciones sobre los paquetes pero no hace que los mismos abandonen la cadena de reglas, por tanto habra que aadir las reglas ACCEPT correspondientes en la tabla de ltrado. Como se explic al principio se usa IPTables para clasicar el trco y Trafc Control actuar segn las reglas especicadas sobre las clases de trco que vendrn indicadas en los paquetes al haber sido marcadas con las opciones de mangle. Se ha obtenido este ejemplo y las rdenes de Trafc Control e IPTables de la siguiente pgina web: http://www.funtoo.org/Trafc_Control. Juan Dez- Yanguas Barber Prctica 9 ______________________________________________________________________________________ ______________________________________________________________________________________ Jdyb - Mayo 2013 58