linux original courseware - lx4 advanced network administrator

Upload: jesus-morbo

Post on 30-May-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    1/80

    Pgina 1

    LOC: Linux Original Courseware

    Correspondiente al CursoLX4: Advanced Network Administrator

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    2/80

    Pgina 2

    Tabla de ContenidosCaptulo 1 ....................................................................................... ............................................................................................ ......... 5

    Introduccin a iptables....................................................................................................................................................................5Qu es un Firewall?.......................................................................................................................................................................5Qu es iptables?.............................................................................................................................................................................8Creando un firewall con iptables ................................................................................ .................................................................... 9

    Proteger la propia mquina.........................................................................................................................................................9Firewall de una LAN con salida a internet...............................................................................................................................11Firewall de una LAN con salida a internet con DMZ..............................................................................................................15Firewall puro y duro entre redes...............................................................................................................................................19Firewall con poltica por defecto DROP .............................................................................. .................................................... 22

    Depurar el funcionamiento del firewall........................................................................................................................................24Captulo 2 ....................................................................................... .............................................................................................. ..... 25

    Introduccin a Squid.....................................................................................................................................................................25Software necesario ................................................................................. ....................................................................................... 25Instalacin del software necesario................................................................................................................................................25Antes de continuar .............................................................................................. .......................................................................... 26Configuracin bsica. ................................................................................... ................................................................................ 26

    Que puerto utilizar para Squid? Parmetro http_port.............................................................................................................26Cunta memoria utilizar? Parmetro cache_mem..................................................................................................................27Cuanto desea almacenar de Internet en el disco duro? Parmetro cache_dir............. ........................................................... 27Aviso de problemas con la cache - Parmetro cache_mgr.......................................................................................................28Acceso FTP annimo a Servidores - Parmetro ftp_user ........................................................... ............................................. 28Acceso FTP pasivo a traves de un Firewall - Parmetro ftp_passive......................................................................................28Control de acceso......................................................................................................................................................................28Control de acceso - Listas.........................................................................................................................................................28Control de acceso - Reglas........................................................................................................................................................29Aplicando Listas y Reglas de control de acceso. .................................................................................... ................................. 29Cache con aceleracin...............................................................................................................................................................30

    Estableciendo el idioma por defecto.............................................................................................................................................31Iniciando, reiniciando y aadiendo el servicio al arranque del sistema. ................................................................................ ..... 31Ajustes para el Firewall o script de Enmascaramiento de IP.......................................................................................................32

    Use Iptables en lugar de ipchains. ........................................................................................ .................................................... 32Re-direccionamiento de peticiones...........................................................................................................................................32Script ejemplo de Enmascaramiento de IP con iptables. ...................................................................................... ................... 33

    Captulo 3 ....................................................................................... .............................................................................................. ..... 35Introduccin a FTP........................................................................................................................................................................35El ABC de FTP ............................................................................................. ................................................................................ 35

    La relacin cliente/servidor .................................................................................................. .................................................... 35Cmo conseguir la ltima versin de wu-ftpd?..........................................................................................................................36

    Lectura de los README..........................................................................................................................................................36Compilacin e instalacin de wu-ftpd......................................................................................................................................36

    Configuracin de wu-ftpd.............................................................................................................................................................37Control de acceso a travs del archivo /etc/ftpaccess ......................................................................................................... ..... 37Configuraciones tpicas.............................................................................................................................................................49Configuracin del usuario annimo ....................................................................... .................................................................. 49Configuracin del directorio FTP annimo..............................................................................................................................50Configuracin de /etc/ftpaccess................................................................................................................................................51Configuracin del directorio /incoming ................................................................. .................................................................. 51Usuarios slo registrados y acceso mixto.................................................................................................................................52

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    3/80

    Pgina 3

    Configuracin de un Servidor FTP Virtual ................................................................................... ............................................... 53Conclusiones ............................................................................................ ..................................................................................... 53

    Captulo 4 ....................................................................................... .............................................................................................. ..... 55Introduccin al Cliente FTP..........................................................................................................................................................55

    Ejecucin del Cliente FTP .................................................................... ................................................................................... ..... 55Comandos del Cliente FTP...........................................................................................................................................................55Salir de una sesin de FTP........................................................................................................................................................55Obtener Ayuda ......................................................................................... ................................................................................. 55Manipulacin de Archivos y Directorios ................................................................................................ ................................. 56

    Transferencia de Archivos............................................................................................................................................................56Tipos de Transferencia..............................................................................................................................................................56Transferencia Interactiva ................................................................................... ....................................................................... 56Transferencia de archivos desde la mquina Remota a la Local ........................................................................................ ..... 57Transferencia de archivos desde la mquina Local a la Remota ........................................................................................ ..... 57

    Captulo 5 ....................................................................................... .............................................................................................. ..... 58Introduccin a Servidores de Correo Elecrnico (e-mail) .......................................................................... ................................. 58Funciones de los mail servers.......................................................................................................................................................58

    Relay..........................................................................................................................................................................................58

    Recoleccin...............................................................................................................................................................................58 Spam y Virus.................................................................................................................................................................................58Servidores de e-mail conocidos....................................................................................................................................................59

    QMail ................................................................................................... ..................................................................................... 59SendMail .............................................................................................. ..................................................................................... 59Postfix........................................................................................................................................................................................60 Exim .............................................................................................. ............................................................................................ 60SuSE Linux eMail Server 3.1 ..................................................................... .............................................................................. 61GLMail......................................................................................................................................................................................61

    Captulo 6 ....................................................................................... .............................................................................................. ..... 62Introduccin a SendMail...............................................................................................................................................................62

    Requisitos previos.....................................................................................................................................................................62Resultados a obtener ........................................................................................ ......................................................................... 62

    Requerimientos mnimos ............................................................................................ .................................................................. 62Procedimientos..............................................................................................................................................................................63

    Preparativos...............................................................................................................................................................................63 Verificando parmetros de red..................................................................................................................................................63Confirmando la instalacin de Sendmail..................................................................................................................................64

    Configurando Sendmail ................................................................................ ................................................................................ 64Habilitando los servicios POP3 e IMAP ......................................................................................... ............................................. 69Que hacer con el Spam?..............................................................................................................................................................70El Servidor de Nombres (DNS)....................................................................................................................................................71Configuracin de los clientes de correo ................................................................................... .................................................... 72

    Captulo 7 ....................................................................................... .............................................................................................. ..... 73Introduccin a Horde (WebMail) ............................................................................... .................................................................. 73

    Qu es Horde? .................................................................................. ....................................................................................... 73Qu es IMP? ................................................................................................... ......................................................................... 73Qu es Turba?..........................................................................................................................................................................73Qu es Kronolith? .............................................................................. ..................................................................................... 73Qu es Jonah?..........................................................................................................................................................................73Qu es WHUPS? ............................................................................................ ......................................................................... 73Qu es Chora? ...................................................................................... ................................................................................... 73Qu es Gollem? ..................................................................................................... .................................................................. 73

    Solamente quiero WebMail. Por qu necesito Horde?...............................................................................................................73Cunto cuesta Horde? ........................................................................................... .................................................................. 74En qu plataformas funciona Horde? .............................................................................. ....................................................... 74Horde funciona en Windows 95 o en NT/2K/XP?.................................................................................................................74

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    4/80

    Pgina 4

    Captulo 8 ....................................................................................... .............................................................................................. ..... 75Introduccin a Administracin Remota........................................................................................................................................75Diferentes tipos de Administracin Remota .............................................................................................. .................................. 75

    Control Remoto.........................................................................................................................................................................75

    Sesin Remota...........................................................................................................................................................................75Acceso Remoto ...................................................................................... ................................................................................... 75Direcciones Web relacionadas......................................................................................................................................................76

    Captulo 9 ....................................................................................... .............................................................................................. ..... 77Introduccin a TelNet ......................................................................................... .......................................................................... 77Telnet en Linux ............................................................................................. ................................................................................ 77Telnet en Windows 2000 ................................................................................................... ........................................................... 77

    Captulo 10 ................................................................................... ................................................................................................ ..... 79Introduccin a SSH ....................................................................................... ................................................................................ 79Software requerido........................................................................................................................................................................79Archivos de configuracin............................................................................................................................................................79Procedimientos..............................................................................................................................................................................79

    Parmetro ListenAddress..........................................................................................................................................................79Parmetro PermitRootLogin.....................................................................................................................................................79

    Parmetro X11Forwarding ............................................................................. .......................................................................... 79Aplicando los cambios..................................................................................................................................................................80Probando OpenSSH. ............................................................................................ ......................................................................... 80

    Acceso por shell........................................................................................................................................................................80Acceso por SFTP ..................................................................................... ................................................................................. 80

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    5/80

    Pgina 5

    Captulo 1

    Introduccin a iptablesEn este manual se muestran las habituales arquitecturas de redes confirewall y la forma de montar iptables para cada caso,con distintas opciones para cada ejemplo.

    Qu es un Firewall?Unfirewall es un dispositivo que filtra el trfico entre redes, como mnimo dos. El firewall puede ser un dispositivo fsico o unsoftware sobre un sistema operativo. En general debemos verlo como una caja con 2 (dos) o ms interfaces de red en la que seestablecen una reglas de filtrado con las que se decide si una conexin determinada puede establecerse o no. Incluso puede irms all y realizar modificaciones sobre las comunicaciones, como el NAT.Esa sera la definicin genrica, hoy en da un firewall es un hardware especfico con un sistema operativo o una BIOS quefiltra el trfico TCP/UDP/ICMP/IP y decide si un paquete pasa, se modifica, se convierte o se descarta. Para que un firewallentre redes funcione como tal debe tener al menos dos tarjetas de red. Esta sera la tipologa clsica de un firewall:

    Figura 1: Esquema defirewall 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 colocarseentre el router(con un nico cable) y la red local (conectado al switch o al hub de la LAN)

    Dependiendo de las necesidades de cada red, puede ponerse uno o ms firewalls para establecer distintos permetros deseguridad en torno a un sistema. Es frecuente tambin que se necesite exponer algn servidor a internet(como es el caso de unservidor web, un servidor de correo, etc.), y en esos casos obviamente en principio se debe aceptar cualquier conexin a ellos.Lo que se recomienda en esa situacin es situar ese servidor en lugar aparte de la red, el que denominamos DMZ o zonadesmilitarizada. Elfirewall tiene entonces tres entradas:

    Figura 2: Esquema defirewall entre red local e internetcon zona DMZ para servidores expuestos

    En la zona desmilitarizada se pueden poner tantos servidores como se necesiten. Con esta arquitectura, permitimos que elservidor sea accesible desde internet de tal forma que si es atacado y se gana acceso a l, la red local sigue protegida por el

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    6/80

    Pgina 6

    firewall. Esta estructura de DMZ puede hacerse tambin con un doble firewall (aunque como se ve se puede usar un nicodispositivo con al menos tres interfaces de red). Sera un esquema como este:

    Figura 3: Esquema defirewall entre red local e internetcon zona DMZ para servidores expuestos creado con doblefirewall(permetro)

    Los firewalls se pueden usar en cualquier red. Es habitual tenerlos como proteccin de interneten las empresas, aunque ahtambin suelen tener una doble funcin: controlar los accesos externos hacia dentro y tambin los internos hacia el exterior;esto ltimo se hace con elfirewall o frecuentemente con unproxy (que tambin utilizan reglas, aunque de ms alto nivel).

    Tambin, en empresas de hosting con muchos servidores, lo normal es encontrarnos uno o msfirewalls ya sea filtrando toda lainstalacin o parte de ella:

    Figura 4: Esquema defirewall entre redes, en la que solo se filtra y no se hace NAT

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    7/80

    Pgina 7

    Sea el tipo defirewall que sea, generalmente no tendr mas que un conjunto de reglas en las que se examina el origen y destinode los paquetes del protocolo TCP/IP. En cuanto a protocolos es probable que sean capaces de filtrar muchos tipos de ellos, nosolo los TCP, tambin los UDP, los ICMP, los GRE y otros protocolos vinculados a vpns. Este podra ser (en pseudo-

    lenguaje) un conjunto de reglas de un firewall del primer grfico:Poltica por defecto ACEPTAR.

    Todo lo que venga de la red local al firewall ACEPTAR

    Todo lo que venga de la ip de mi casa al puerto tcp 22 ACEPTAR

    Todo lo que venga de la ip de casa del jefe al puerto tcp 1723 ACEPTAR

    Todo lo que venga de hora.rediris.es al puerto udo 123 ACEPTAR

    Todo lo que venga de la red local y vaya al exterior ENMASCARAR

    Todo lo que venga del exterior al puerto tcp 1 al 1024 DENEGAR

    Todo lo que venga del exterior al puerto tcp 3389 DENEGAR

    Todo lo que venga del exterior al puerto udp 1 al 1024 DENEGAR

    En definitiva lo que se hace es: Habilita el acceso a puertos de administracin a determinadas IPs privilegiadas Enmascara el trafico de la red local hacia el exterior (NAT, una peticin de un pc de la LAN sale al exterior con la IP

    pblica), para poder salir a internet Deniega el acceso desde el exterior a puertos de administracin y a todo lo que este entre 1 y 1024.

    Hay dos maneras de implementar unfirewall:1) Poltica por defecto ACEPTAR: en principio todo lo que entra y sale por elfirewall se acepta y solo se denegar lo que

    se diga explcitamente.2) Poltica por defecto DENEGAR: todo esta denegado, y solo se permitir pasar por el firewall aquellos que se permita

    explcitamente.

    Como es obvio imaginar, la primera poltica facilita mucho la gestin del firewall, ya que simplemente nos tenemos quepreocupar de proteger aquellos puertos o direcciones que sabemos que nos interesa; el resto no importa tanto y se deja pasar.Por ejemplo, si queremos proteger una mquina linux, podemos hacer un netstat -ln (o netstat -an, o netstat

    puta | grep LISTEN), saber que puertos estn abiertos, poner reglas para proteger esos puertos y ya est. Para qu vamos aproteger un puerto que realmente nunca se va a abrir?

    El nico problema que podemos tener es que no controlemos que es lo que esta abierto, o que en un momento dado se instale unsoftware nuevo que abra un puerto determinado, o que no sepamos que determinados paquetes ICMP son peligrosos. Si lapoltica por defecto es ACEPTAR y no se protege explcitamente, podemos poner en riesgo la PC o Servidor que queremosproteger.

    En cambio, si la poltica por defecto es DENEGAR, a no ser que lo permitamos explcitamente, elfirewall se convierte en unautntico MURO infranqueable. El problema es que es mucho ms difcil preparar un firewall as, y hay que tener muy clarocomo funciona el sistema (sea iptables o el que sea) y que es lo que se tiene que abrir sin caer en la tentacin de empezar ameter reglas super-permisivas.Esta configuracin defirewall 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 defirewalls.

    Importante

    El orden en el que se ponen las reglas de firewall es determinante. Normalmentecuando hay que decidir que se hace con un paquete se va comparando con cadaregla delfirewall hasta que se encuentra una que le afecta (match), y se hace lo quedicte esta regla (aceptar o denegar); despus de eso NO SE MIRARN MSREGLAS para ese paquete. Cul es el peligro? Si ponemos reglas muy permisivasentre las primeras del firewall, puede que las siguientes no se apliquen y no sirvande nada.

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    8/80

    Pgina 8

    Qu es iptables?IPtables es un sistema defirewall vinculado al kernel de linux que se ha extendido enormemente a partir del kernel 2.4 de estesistema operativo. Al igual que el anterior sistema ipchains, un firewall de iptables no es como un servidor que lo

    iniciamos o detenemos o que se pueda caer por un error de programacin (aunque ha tenido alguna vulnerabilidad que permiteDoS, pero nunca tendr tanto peligro como las aplicaciones que escuchan en determinado puerto TCP): iptables estaintegrado con el kernel, es parte del sistema operativo. Cmo se pone en marcha? Realmente lo que se hace es aplicar reglas.Para ellos se ejecuta el comando iptables, con el que aadimos, borramos, o creamos reglas. Por ello un firewall deiptables no es sino un simple scriptde shell en el que se van ejecutando las reglas defirewall.

    NotaSe puede implementar un script de inicio en /etc/rc.d/init.d (/etc/init.d) con el que hagamos que iptables se "inicie o pare" como unservicio ms. Lo podemos hacer nosotros o es probable que venga en ladistribucin (como en RedHatpor ejemplo). Tambin se pueden salvar las reglasaplicadas con el comando iptables-save en un fichero y gestionar ese ficherocon una aplicacin o front-end desde la X o desde webmin.

    Si tenemos una mquina linux con soporte para iptables, tiene reglas aplicadas y empiezan a llegar/salir/pasar paquetes. Porahora no es necesario que tengamos en cuenta cuantas placas de red hay, que direcciones IP tiene la mquina y olvidemos si elpaquete entra o sale. Las reglas de firewall estn a nivel de kernel, y al kernel lo que le llega es un paquete y tiene que decidirque hacer con l. El kernel lo que hace es, dependiendo si el paquete es para la propia mquina o para otra mquina, consultarlas reglas defirewall y decidir que hacer con el paquete segn mande elfirewall. Este es el camino que seguira un paquete enel kernel:

    Figura 5: Cuando un paquete u otra comunicacin llegan al kernel con iptables se sigue este camino

    Como se ve en el grfico, bsicamente se mira si el paquete esta destinado a la propia mquina o si va a otra. Para los paquetes(o datagramas, segn el protocolo) que van a la propia mquina se aplican las reglas INPUT y OUTPUT, y para filtrar paquetesque van a otras redes o mquinas se aplican simplemente reglas FORWARD.

    INPUT, OUTPUT y FORWARD son los tres tipos de reglas de filtrado.Antes de aplicar esas reglas es posible aplicar reglas de NAT: estas se usan para hacer redirecciones de puertos o cambios en lasIPs de origen y destino. Veremos ejemplos ms adelante.E incluso antes de las reglas de NAT se pueden meter reglas de tipo MANGLE, destinadas a modificar los paquetes; son reglaspoco conocidas y es probable que no las usen.Por tanto tenemos tres tipos de reglas en iptables:

    MANGLE NAT: reglas PREROUTING, POSTROUTING FILTER: reglas INPUT, OUTPUT, FORWARD.

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    9/80

    Pgina 9

    Creando un firewall con iptablesEn este tutorial se ha intentado dar una breve introduccin sobre lo que es unfirewall, sus tipologas bsicas y en concreto sepresenta el sistema iptables. Ahora veremos configuraciones de firewall con iptables, empezando desde la ms bsica a

    las ms complejas, en las que se establece la denegacin como poltica por defecto.

    NotaSe recomienda encarecidamente ir practicando estas reglas en alguna mquinalinux disponible, y especialmente hacer uso de la herramienta iptraf paradepurar y comprobar el funcionamiento de iptables. Con iptraf podemoscomprobar si las conexiones TCP/IP se llegan a establecer o no.

    Una conexin TCP/IP empieza con el three-way-handshake: La maquina que desea conectarse a otra enva un paquete conflagSYN Si la otra maquina acepta, enva un SYN/ACK Entonces la mquina establece la conexin.

    Si elfirewall esta denegando la conexin, con iptraf veremos que la mquina origen slo manda paquetes con el flagSYN, yque del otro lado no sale nada. Saber usar iptraf nos ayudar mucho.

    Proteger la propia mquinaMuy bien, tenemos una mquina linux conectada a internety queremos protegerla con su propiofirewall. Lo nico que tenemosque hacer es crear un scriptde shell en el que se van aplicando las reglas.Los scripts de iptables pueden tener este aspecto:

    Saludo a la aficin (echo)

    Borrado de las reglas aplicadas actualmente (flush)

    Aplicacin de polticas por defecto para INPUT, OUPUT, FORWARD

    Listado de reglas iptables.

    Ojo con el orden de las reglas

    #!/bin/sh## SCRIPT de IPTABLES - ejemplo del manual de iptables## Ejemplo de script para proteger la propia mquina

    echo -n Aplicando Reglas de Firewall...

    ## FLUSH de reglasiptables Fiptables Xiptables Ziptables -t nat F

    ## Establecemos politica por defectoiptables -P INPUT ACCEPTiptables -P OUTPUT ACCEPTiptables -P FORWARD ACCEPT

    iptables -t nat -P PREROUTING ACCEPTiptables -t nat -P POSTROUTING ACCEPT

    ## Empezamos a filtrar# El localhost se deja (por ejemplo conexiones locales a mysql)/sbin/iptables -A INPUT -i lo -j ACCEPT

    # A nuestra IP le dejamos todoiptables -A INPUT -s 195.65.34.234 -j ACCEPT

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    10/80

    Pgina 10

    # A un colega le dejamos entrar al mysql para que mantenga la BBDDiptables -A INPUT -s 231.45.134.23 -p tcp --dport 3306 -j ACCEPT

    # A un diseador le dejamos usar el FTP

    iptables -A INPUT -s 80.37.45.194 -p tcp -dport 20:21 -j ACCEPT

    # El puerto 80 de www debe estar abierto, es un servidor web.iptables -A INPUT -p tcp --dport 80 -j ACCEPT

    # Y el resto, lo cerramosiptables -A INPUT -p tcp --dport 20:21 -j DROPiptables -A INPUT -p tcp --dport 22 -j DROPiptables -A INPUT -p tcp --dport 3306 -j DROPiptables -A INPUT -p tcp --dport 10000 -j DROP

    echo " OK . Verifique que lo que se aplica con: iptables -L n "# Fin del script

    Nota

    Se puede mejorar este scriptusando variables, se puede poner el comando con elpath completo. No olvidarse de ponerle permisos de ejecucin con:chmod +x firewall-1.sh chmod 750 firewall-1.sh .

    En fin, ya se ve, un script de los ms simples, con unas pocas reglas con las que cerramos puertos al pblico a los que no tienenporque tener acceso, salvo el 80. Pero cualquiera con algo de ojo se habr dado cuenta de que ni se filtra el UDP ni el ICMP.Como mencionamos anteriormente, en este tipo de firewall es recomendable hacer un netstat para ver que puertos estn enestado de escucha (abiertos), y salvo que un rootkitnos haya modificado los binarios, netstat nos dar la informacin precisaque necesitamos.

    CuidadoAunque nmap tambin nos muestra los puertos abiertos, dependiendo de cmo loejecutemos quiz no nos muestre todos los puertos, ya que suele mirar solo losms conocidos

    Imaginemos que hemos dado un repaso a nuestro sistema, y ahora si que tenemos mejor identificados los puertos TCP y UDPabiertos. Pero, para estar seguros, al final del scriptcerraremos el rango de puertos del 1 al 1024, los reservados tanto para TCPcomo UDP. Reemplazamos el final del script anterior con:

    # Hasta aqu el script es igual al ejemplo anterior

    # El puerto 80 de www debe estar abierto, es un servidor web.iptables -A INPUT -p tcp --dport 80 -j ACCEPT

    # Cerramos rango de los puertos privilegiados. Cuidado con este tipo de# barreras, antes hay que abrir a los que si tienen acceso.iptables -A INPUT -p tcp --dport 1:1024 -j DROPiptables -A INPUT -p udp --dport 1:1024 -j DROP

    # Y el resto, lo cerramos

    iptables -A INPUT -p tcp --dport 3306 -j DROPiptables -A INPUT -p tcp --dport 10000 -j DROPiptables -A INPUT -p udp --dport 10000 -j DROP

    echo " OK . Verifique que lo que se aplica con: iptables -L n "# Fin del script

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    11/80

    Pgina 11

    NotaSi estas reglas de filtrado las esta aplicando en una mquina remota (conectadoremotamente) y tiene miedo de perder el control de la mquina remota, pruebe elscript en una mquina local y asegrese de que aplica lo que usted quiere.

    Funcionar va a funcionar seguro.

    Firewall de una LAN con salida a internetAhora vamos a ver una configuracin de firewall iptables para el tpico caso de red local que necesita salida a internet.

    Figura 6: Esquema defirewall tpico entre red local e internet

    Qu es lo que hace falta? Obviamente, una regla que haga NAT hacia fuera (enmascaramiento en iptables), con lo que se

    hara dos veces NAT en el firewall y en el router. Entre el router y el firewall lo normal es que haya una red privada(192.168.1.1 y 192.168.1.2 por ejemplo), aunque dependiendo de las necesidades puede que los dos tengan IP pblica. El routerse supone que hace un NAT completo hacia dentro (quiz salvo puerto 23), o sea que desde el exterior no se llega al routersino que de forma transparente se "choca" contra el firewall. Lo normal en este tipo defirewalls es poner la poltica por defectode FORWARD en denegar (DROP), pero eso lo vemos ms adelante.Veamos como seran las reglas de estefirewall-gateway:

    #!/bin/sh## SCRIPT de IPTABLES - ejemplo del manual de iptables## Ejemplo de script para firewall entre red-local e internet

    echo -n Aplicando Reglas de Firewall...

    ## FLUSH de reglasiptables F

    iptables Xiptables Ziptables -t nat F

    ## Establecemos politica por defectoiptables -P INPUT ACCEPTiptables -P OUTPUT ACCEPTiptables -P FORWARD ACCEPTiptables -t nat -P PREROUTING ACCEPTiptables -t nat -P POSTROUTING ACCEPT

    ## Empezamos a filtrar## Nota: eth0 es el interfaz conectado al router y eth1 a la LAN# El localhost se deja (por ejemplo conexiones locales a mysql)/sbin/iptables -A INPUT -i lo -j ACCEPT

    # Al firewall tenemos acceso desde la red localiptables -A INPUT -s 192.168.10.0/24 -i eth1 -j ACCEPT

    # Ahora hacemos enmascaramiento de la red local# y activamos el BIT DE FORWARDING (imprescindible!!!!!)iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE

    # Con esto permitimos hacer forward de paquetes en el firewall, o sea# que otras mquinas puedan salir a traves del firewall.

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    12/80

    Pgina 12

    echo 1 > /proc/sys/net/ipv4/ip_forward

    ## Y ahora cerramos los accesos indeseados del exterior:# Nota: 0.0.0.0/0 significa: cualquier red# Cerramos el rango de puerto bien conocido

    iptables -A INPUT -s 0.0.0.0/0 -p tcp -dport 1:1024 -j DROPiptables -A INPUT -s 0.0.0.0/0 -p udp -dport 1:1024 -j DROP

    # Cerramos un puerto de gestin: webminiptables -A INPUT -s 0.0.0.0/0 -p tcp -dport 10000 -j DROP

    echo " OK . Verifique que lo que se aplica con: iptables -L -n"# Fin del script

    Pero como somos muy malvados queremos que los empleados solamente puedan navegar por internet, denegando el acceso aKazaa o edonkey. Esta sera una configuracin simple pero efectiva. Reemplazamos en el script anterior lo siguiente:

    # Hasta aqu el script es igual al ejemplo anterior

    # Al firewall tenemos acceso desde la red local

    iptables -A INPUT -s 192.168.10.0/24 -i eth1 -j ACCEPT

    ## Ahora con regla FORWARD filtramos el acceso de la red local## al exterior. Como se explica antes, a los paquetes que no van dirigidos al## propio firewall se les aplican reglas de FORWARD# Aceptamos que vayan a puertos 80iptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p tcp --dport 80 -j ACCEPT

    # Aceptamos que vayan a puertos httpsiptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p tcp --dport 443 -j ACCEPT

    # Aceptamos que consulten los DNSiptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p tcp --dport 53 -j ACCEPTiptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p udp --dport 53 -j ACCEPT

    # Y denegamos el resto. Si se necesita alguno, ya avisaran

    iptables -A FORWARD -s 192.168.10.0/24 -i eth1 -j DROP

    # Ahora hacemos enmascaramiento de la red local# y activamos el BIT DE FORWARDING (imprescindible!!!!!)iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE

    # De aqu en adelante el script es igual al ejemplo anterior

    Supongamos que este firewall tiene alguna funcin adicional: es un servidor proxy y adems es un servidor de correo. Darlefuncionalidades de este tipo a un firewall no es recomendable, porque si no se protegen bien esos puertos o si no estactualizado el software pueden entrar en el firewall a base de exploits comprometiendo TODA la red local. De todas formasmuchas empresas no se pueden permitir o no quieren tener una mquina para cada cosa, bastante les cuesta a muchas poner unfirewall. Por tanto: si se aaden servicios que deben estar abiertos al pblico en el propio firewall, nos la estamos jugando, y serecomienda pasar el servicio a otra mquina y ponerla en la DMZ.Supongamos tambin que la empresa tiene empleados que viajan y que se conectan a internet desde su porttil y con una IP

    dinmica. Supongamos tambin que el jefe de la empresa quiere acceder a la red local desde casa con una conexin ADSL.Ahora en elfirewall deberamos tener instalado un servidor SMTP, POP3, y un PPTPD.

    Nuestro script completo quedara as:#!/bin/sh## SCRIPT de IPTABLES - ejemplo del manual de iptables## Ejemplo de script para firewall entre red-local e internet## con servicios abiertos de puerto 25, 110, y 1723

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    13/80

    Pgina 13

    echo -n Aplicando Reglas de Firewall...## FLUSH de reglasiptables Fiptables Xiptables Z

    iptables -t nat F

    ## Establecemos politica por defectoiptables -P INPUT ACCEPTiptables -P OUTPUT ACCEPTiptables -P FORWARD ACCEPTiptables -t nat -P PREROUTING ACCEPTiptables -t nat -P POSTROUTING ACCEPT

    ## Empezamos a filtrar## Nota: eth0 es el interfaz conectado al router y eth1 a la LAN# El localhost se deja (por ejemplo conexiones locales a mysql)iptables -A INPUT -i lo -j ACCEPT

    # Al firewall tenemos acceso desde la red localiptables -A INPUT -s 192.168.10.0/24 -i eth1 -j ACCEPT

    ## Abrimos el acceso a puertos de correo# Abrimos el puerto 25, hay que configurar bien el relay del servidor SMTPiptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 25 -j ACCEPT# Abrimos el pop3iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 110 -j ACCEPT

    # Y abrimos el puerto pptpd para la ip del adsl de casa del jefeiptables -A INPUT -s 211.45.176.24 -p tcp --dport 1723 -j ACCEPT

    ## Ahora con regla FORWARD filtramos el acceso de la red local## al exterior. Como se explica antes, a los paquetes que no van dirigidos al## propio firewall se les aplican reglas de FORWARD

    # Aceptamos que vayan a puertos 80iptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p tcp --dport 80 -j ACCEPT

    # Aceptamos que vayan a puertos httpsiptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p tcp --dport 443 -j ACCEPT

    # Aceptamos que consulten los DNSiptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p tcp --dport 53 -j ACCEPTiptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p udp --dport 53 -j ACCEPT# Y denegamos el resto. Si se necesita alguno, ya avisaraniptables -A FORWARD -s 192.168.10.0/24 -i eth1 -j DROP

    # Ahora hacemos enmascaramiento de la red local# y activamos el BIT DE FORWARDING (imprescindible!!!!!)iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE

    # Con esto permitimos hacer forward de paquetes en el firewall, o sea# que otras mquinas puedan salir a traves del firewall.echo 1 > /proc/sys/net/ipv4/ip_forward

    ## Y ahora cerramos los accesos indeseados del exterior:# Nota: 0.0.0.0/0 significa: cualquier red# Cerramos el rango de puerto bien conocidoiptables -A INPUT -s 0.0.0.0/0 -i eth0 -p tcp -dport 1:1024 -j DROPiptables -A INPUT -s 0.0.0.0/0 -i eth0 -p udp -dport 1:1024 -j DROP

    # Cerramos un puerto de gestin: webminiptables -A INPUT -s 0.0.0.0/0 -i eth0 -p tcp --dport 10000 -j DROP

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    14/80

    Pgina 14

    # Y cerramos el puerto del servicio PPTPD, solo abierto para el jefe.iptables -A INPUT -s 0.0.0.0/0 -i eth0 -p tcp --dport 1723 -j DROP

    echo " OK . Verifique que lo que se aplica con: iptables -L -n"

    # Fin del script

    Ms difcil todava!Ahora queremos compartir algn servicio pero de un servidor que tenemos dentro de la red local, por ejemplo el IIS de unservidor Windows 2000, y adems permitir la gestin remota por terminal serverpara esta mquina para una empresa externa.En este caso lo que hay que hacer es un redireccin de puerto. Antes de iptables esto se poda hacer fcilmente con unservidor como rinet. Rinet lo que hace es simplemente abrir un puerto en el firewall y al conectarse a l te lleva hasta elpuerto de otra mquina, como una tubera. Con iptables podemos hacer redirecciones con una ventaja: no perdemos lainformacin de IP origen, cosa que con rinet s ocurra. En fin, veamos la configuracin, con las nuevas reglas de DNAT:

    #!/bin/sh## SCRIPT de IPTABLES - ejemplo del manual de iptables## Ejemplo de script para firewall entre red-local e internet## con servicios abiertos de puerto 25, 110, y 1723echo -n Aplicando Reglas de Firewall...

    ## FLUSH de reglasiptables Fiptables Xiptables Ziptables -t nat F

    ## Establecemos politica por defectoiptables -P INPUT ACCEPTiptables -P OUTPUT ACCEPTiptables -P FORWARD ACCEPTiptables -t nat -P PREROUTING ACCEPTiptables -t nat -P POSTROUTING ACCEPT

    ## Empezamos a filtrar

    ## REDIRECCIONES# Todo lo que venga por el exterior y vaya al puerto 80 lo redirigimos# a una maquina internaiptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.10.12:80

    # Los accesos de un ip determinada a Terminal server se redirigen e esa# maquinaiptables -t nat -A PREROUTING -s 221.23.124.181 -i eth0 -p tcp --dport 3389 -j DNAT --to

    192.168.10.12:3389

    ## Nota: eth0 es el interfaz conectado al router y eth1 a la LAN# El localhost se deja (por ejemplo conexiones locales a mysql)iptables -A INPUT -i lo -j ACCEPT

    # Al firewall tenemos acceso desde la red localiptables -A INPUT -s 192.168.10.0/24 -i eth1 -j ACCEPT

    ## Abrimos el acceso a puertos de correo# Abrimos el puerto 25, hay que configurar bien el relay del servidor SMTPiptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 25 -j ACCEPT

    # Abrimos el pop3iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 110 -j ACCEPT

    # Y abrimos el puerto pptpd para la ip del adsl de casa del jefe

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    15/80

    Pgina 15

    iptables -A INPUT -s 211.45.176.24 -p tcp --dport 1723 -j ACCEPT

    ## Ahora con regla FORWARD filtramos el acceso de la red local## al exterior. Como se explica antes, a los paquetes que no van dirigidos al## propio firewall se les aplican reglas de FORWARD

    # Aceptamos que vayan a puertos 80iptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p tcp --dport 80 -j ACCEPT# Aceptamos que vayan a puertos httpsiptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p tcp --dport 443 -j ACCEPT

    # Aceptamos que consulten los DNSiptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p tcp --dport 53 -j ACCEPTiptables -A FORWARD -s 192.168.10.0/24 -i eth1 -p udp --dport 53 -j ACCEPT

    # Y denegamos el resto. Si se necesita alguno, ya avisaraniptables -A FORWARD -s 192.168.10.0/24 -i eth1 -j DROP

    # Ahora hacemos enmascaramiento de la red local# y activamos el BIT DE FORWARDING (imprescindible!!!!!)iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE

    # Con esto permitimos hacer forward de paquetes en el firewall, o sea# que otras mquinas puedan salir a traves del firewall.echo 1 > /proc/sys/net/ipv4/ip_forward

    ## Y ahora cerramos los accesos indeseados del exterior:# Nota: 0.0.0.0/0 significa: cualquier red# Cerramos el rango de puerto bien conocidoiptables -A INPUT -s 0.0.0.0/0 -i eth0 -p tcp -dport 1:1024 -j DROPiptables -A INPUT -s 0.0.0.0/0 -i eth0 -p udp -dport 1:1024 -j DROP

    # Cerramos un puerto de gestin: webminiptables -A INPUT -s 0.0.0.0/0 -i eth0 -p tcp --dport 10000 -j DROP

    # Y cerramos el puerto del servicio PPTPD, solo abierto para el jefe.iptables -A INPUT -s 0.0.0.0/0 -i eth0 -p tcp --dport 1723 -j DROP

    echo " OK . Verifique que lo que se aplica con: iptables -L n "# Fin del script

    Bueno ya tenemos montada la red, pero conviene insistir en que esta ltima configuracin, con las redirecciones y los serviciosde correo funcionando en el firewall es bastante insegura. Qu ocurre si hackean el servidor IIS de la red local? Pues que elfirewall no sirve de gran cosa, lo poco que podra hacer una vez se ha entrado en la red local es evitar escaneos hacia el exteriordesde la mquina atacada, aunque para ello el firewall debiera tener una buena configuracin con denegacin por defecto. Sinecesitamos ese servidor IIS, basta con comprar una placa de red y crear una DMZ.

    Firewall de una LAN con salida a internet con DMZBueno, esto se va complicando. Imaginemos que tenemos una red parecida a la anterior pero ahora hacemos las cosas bien ycolocamos ese servidor IIS en una DMZ:

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    16/80

    Pgina 16

    Figura 7: Esquema defirewall entre red local e internetcon zona DMZ para servidores expuestos.

    En este tipo de firewall hay que permitir: Acceso de la red local a internet.

    Acceso pblico al puerto TCP/80 y TCP/443 del servidor de la DMZ Acceso del servidor de la DMZ a una BBDD de la LAN Obviamente bloquear el resto de acceso de la DMZ hacia la LAN.

    Qu tipo de reglas son las que hay que usar para filtrar el trfico entre la DMZ y la LAN? Solo pueden ser las FORWARD, yaque estamos filtrando entre distintas redes, no son paquetes destinados al propio firewall.

    #!/bin/sh## SCRIPT de IPTABLES - ejemplo del manual de iptables## Ejemplo de script para firewall entre red-local e internet con DMZecho -n Aplicando Reglas de Firewall...

    ## FLUSH de reglasiptables Fiptables X

    iptables Ziptables -t nat F

    ## Establecemos politica por defectoiptables -P INPUT ACCEPTiptables -P OUTPUT ACCEPTiptables -P FORWARD ACCEPTiptables -t nat -P PREROUTING ACCEPTiptables -t nat -P POSTROUTING ACCEPT

    ## Empezamos a filtrar## Nota: eth0 es el interfaz conectado al router y eth1 a la LAN# Todo lo que venga por el exterior y vaya al puerto 80 lo redirigimos# a una maquina internaiptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.3.2:80

    # Los accesos de un ip determinada HTTPS se redirigen e esa# maquinaiptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to 192.168.3.2:443

    # El localhost se deja (por ejemplo conexiones locales a mysql)/sbin/iptables -A INPUT -i lo -j ACCEPT

    # Al firewall tenemos acceso desde la red localiptables -A INPUT -s 192.168.10.0/24 -i eth1 -j ACCEPT

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    17/80

    Pgina 17

    # Ahora hacemos enmascaramiento de la red local y de la DMZ# para que puedan salir haca fuera# y activamos el BIT DE FORWARDING (imprescindible!!!!!)iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE

    iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -o eth0 -j MASQUERADE

    # Con esto permitimos hacer forward de paquetes en el firewall, o sea# que otras mquinas puedan salir a traves del firewall.echo 1 > /proc/sys/net/ipv4/ip_forward

    ## Permitimos el paso de la DMZ a una BBDD de la LAN:iptables -A FORWARD -s 192.168.3.2 -d 192.168.10.5 -p tcp --dport 5432 -j ACCEPTiptables -A FORWARD -s 192.168.10.5 -d 192.168.3.2 -p tcp --sport 5432 -j ACCEPT

    ## permitimos abrir el Terminal server de la DMZ desde la LANiptables -A FORWARD -s 192.168.10.0/24 -d 192.168.3.2 -p tcp --sport 1024:65535 --dport3389 -j ACCEPT

    # hay que hacerlo en uno y otro sentido iptables -A FORWARD -s 192.168.3.2 -d 192.168.10.0/24 -p tcp --sport 3389 --dport

    1024:65535 -j ACCEPT

    # por que luego:# Cerramos el acceso de la DMZ a la LANiptables -A FORWARD -s 192.168.3.0/24 -d 192.168.10.0/24 -j DROP

    ## Cerramos el acceso de la DMZ al propio firewalliptables -A INPUT -s 192.168.3.0/24 -i eth2 -j DROP

    ## Y ahora cerramos los accesos indeseados del exterior:# Nota: 0.0.0.0/0 significa: cualquier red

    # Cerramos el rango de puerto bien conocidoiptables -A INPUT -s 0.0.0.0/0 -p tcp -dport 1:1024 -j DROPiptables -A INPUT -s 0.0.0.0/0 -p udp -dport 1:1024 -j DROP

    # Cerramos un puerto de gestin: webminiptables -A INPUT -s 0.0.0.0/0 -p tcp -dport 10000 -j DROP

    echo " OK . Verifique que lo que se aplica con: iptables -L n "# Fin del script

    Si las mquinas de la DMZ tienen una IP pblica hay que tener muchsimo cuidado de no permitir el FORWARD por defecto.Si en la DMZ hay IP pblica NO ES NECESARIO HACER REDIRECCIONES de puerto, sino que basta con rutar lospaquetes para llegar hasta la DMZ. Este tipo de necesidades surgen cuando por ejemplo tenemos dos mquinas con servidorweb (un Apache y un IIS); A cul de las dos le redirigimos el puerto 80? No hay manera de saberlo (con servidores virtualestampoco), por eso se deben asignar IPs pblicas o en su defecto usar puertos distintos.Por tanto hay que proteger convenientemente toda la DMZ. Tampoco hara falta enmascarar la salida hacia el exterior de laDMZ, si tiene una IP pblica ya tiene una pata puesta en internet; obviamente hay que decirle al routercomo llegar hasta esaIP pblica. As podra ser esta red:

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    18/80

    Pgina 18

    Figura 8: Esquema defirewall entre red local e internetcon zona DMZpara servidores expuestos usando IPs pblicas

    Y este podra ser el script para unfirewall adecuado:

    #!/bin/sh## SCRIPT de IPTABLES - ejemplo del manual de iptables## Ejemplo de script para firewall entre red-local e internet con DMZ## pero con IPs pblicas.echo -n Aplicando Reglas de Firewall...

    ## FLUSH de reglasiptables Fiptables Xiptables Ziptables -t nat F

    ## Establecemos politica por defectoiptables -P INPUT ACCEPTiptables -P OUTPUT ACCEPTiptables -P FORWARD ACCEPTiptables -t nat -P PREROUTING ACCEPTiptables -t nat -P POSTROUTING ACCEPT

    ## Empezamos a filtrar## Nota: eth0 es el interfaz conectado al router y eth1 a la LAN# El localhost se deja (por ejemplo conexiones locales a mysql)/sbin/iptables -A INPUT -i lo -j ACCEPT

    # Al firewall tenemos acceso desde la red localiptables -A INPUT -s 192.168.10.0/24 -i eth1 -j ACCEPT

    # Ahora hacemos enmascaramiento de la red local y de la DMZ para que puedan

    # salir haca fuera y activamos el BIT DE FORWARDING (imprescindible!!!!!)iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -o eth0 -j MASQUERADE

    # Con esto permitimos hacer forward de paquetes en el firewall, o sea# que otras mquinas puedan salir a traves del firewall.echo 1 > /proc/sys/net/ipv4/ip_forward

    ## Permitimos el acceso desde el exterior a los puertos 80 y 443 de DMZiptables -A FORWARD -d 212.194.89.152 -p tcp -dport 80 -j ACCEPT

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    19/80

    Pgina 19

    iptables -A FORWARD -d 212.194.89.152 -p tcp -dport 443 -j ACCEPTiptables -A FORWARD -d 212.194.89.150/30 -j DROP

    ## Permitimos el paso de la DMZ a una BBDD de la LAN:iptables -A FORWARD -s 212.194.89.152 -d 192.168.10.5 -p tcp --dport 5432 -j ACCEPT

    # en el otro sentido lo mismoiptables -A FORWARD -s 192.168.10.5 -d 212.194.89.152 -p tcp --sport 5432 -j ACCEPT

    ## permitimos abrir el Terminal server de la DMZ desde la LANiptables -A FORWARD -s 192.168.10.0/24 -d 212.194.89.152 -p tcp --sport 1024:65535 --dport 3389 -j ACCEPT

    # hay que hacerlo en uno y otro sentido iptables -A FORWARD -s 212.194.89.152 -d 192.168.10.0/24 -p tcp --sport 3389 --dport1024:65535 -j ACCEPT

    # por que luego:# Cerramos el acceso de la DMZ a la LANiptables -A FORWARD -s 212.194.89.152 -d 192.168.10.0/24 -j DROP

    ## Cerramos el acceso de la DMZ al propio firewalliptables -A INPUT -s 212.194.89.152 -i eth2 -j DROP

    ## Y ahora cerramos los accesos indeseados del exterior:# Cerramos el rango de puerto bien conocidoiptables -A INPUT -s 0.0.0.0/0 -p tcp -dport 1:1024 -j DROPiptables -A INPUT -s 0.0.0.0/0 -p udp -dport 1:1024 -j DROP

    # Cerramos un puerto de gestin: webminiptables -A INPUT -s 0.0.0.0/0 -p tcp -dport 10000 -j DROP

    echo " OK . Verifique que lo que se aplica con: iptables -L -n"# Fin del script

    Por qu hay que explicitar la abertura en uno y otro sentido? Porque la tercera regla cierra todo lo que va de la DMZ a la red

    local. Para abrir el puerto 3389 de TCP es imprescindible que un paquete de ida sea capaz de llegar hasta la DMZ y que a suvez pueda volver a la LAN. Esto de tener que especificar la abertura en uno y otro sentido ser el pan de cada da en un iptablescon poltica DROP por defecto: mejor proteccin pero ms trabajo.

    Por qu se explicita el puerto de origen/destino 1024:65535 en la primera y segunda regla? Imaginemos que un hacker lograacceso a la mquina de la DMZ. Si no especificamos el puerto de destino en esas dos reglas, el hacker puede abrirCUALQUIER puerto de la LAN siempre que pueda establecer como puerto origen suyo el TCP/3389, cosa fcil para un hackerque sepa algo de C o que tenga el programa pertinente a mano. De todas formas el hacker tendra que saber que existe ese tipode reglas, si es listo probara con puertos de gestin o con puertos NetBios. El problema es que se deja un vnculo con la LANbien para administrarlo remotamente o para establecer relaciones de confianza y ah es donde reside el peligro.En las conexiones "legales" no se usa como puerto origen nada por debajo del 1024; cuando alguien se conecta a otro puerto ensu extremo abre un puerto por encima del 1024. Especificndolo en la regla de firewall protegeremos un poco mejor la LAN,aunque los puertos por encima de 1024 estarn en peligro.

    Firewall puro y duro entre redesEn este caso olvidmonos de redes locales y de NAT. Aqu solo tendremos reglas de filtrado INPUT y FORWARD. Pongamosque tenemos el siguiente escenario:

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    20/80

    Pgina 20

    Figura 9: Esquema defirewall entre redes, en la que solo se filtra y no se hace NAT

    En el firewall debemos indicar una serie de reglas para proteger los equipos que estn al otro lado de este dispositivo, todosellos de la red 211.34.149.0/24 . Cada uno de ellos da un servicio determinado, y puede estar gestionado desde distintas IPs,lo que significa que habr que dar acceso a determinados puertos de gestin (22, 3389, etc.).

    Este podra ser el aspecto del scriptdelfirewall:#!/bin/sh## SCRIPT de IPTABLES - ejemplo del manual de iptables## Ejemplo de script para firewall entre redes.echo -n Aplicando Reglas de Firewall...

    ## FLUSH de reglasiptables -Fiptables -Xiptables -Ziptables -t nat F

    ## Establecemos politica por defectoiptables -P INPUT ACCEPTiptables -P OUTPUT ACCEPT

    iptables -P FORWARD ACCEPT

    ## Empezamos a filtrar## Nota: eth0 es el interfaz conectado al router y eth1 a la LAN# A nuestro firewall tenemos acceso total desde la nuestra IPiptables -A INPUT -s 210.195.55.15 -j ACCEPT

    # Para el resto no hay acceso al firewalliptables -A INPUT -s 0.0.0.0/0 -j DROP

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    21/80

    Pgina 21

    ## Ahora podemos ir metiendo las reglas para cada servidor## Como sern paquetes con destino a otras mquinas se aplica FORWARD## Servidor WEB 211.34.149.2# Acceso a puerto 80

    iptables -A FORWARD -d 211.34.149.2 -p tcp --dport 80 -j ACCEPT

    # Acceso a nuestra ip para gestionarloiptables -A FORWARD -s 210.195.55.15 -d 211.34.149.2 -p tcp --dport 22 -j ACCEPT

    # El resto, cerrariptables -A FORWARD -d 211.34.149.2 -j DROP

    ## Servidor MAIL 211.34.149.3# Acceso a puerto 25, 110 y 143iptables -A FORWARD -d 211.34.149.3 -p tcp --dport 25 -j ACCEPTiptables -A FORWARD -d 211.34.149.3 -p tcp --dport 110 -j ACCEPTiptables -A FORWARD -d 211.34.149.3 -p tcp --dport 143 -j ACCEPT

    # Acceso a gestion SNMPiptables -A FORWARD -s 210.195.55.15 -d 211.34.149.3 -p udp --dport 169 -j ACCEPT

    # Acceso a nuestra ip para gestionarloiptables -A FORWARD -s 210.195.55.15 -d 211.34.149.3 -p tcp --dport 22 -j ACCEPT

    # El resto, cerrariptables -A FORWARD -d 211.34.149.3 -j DROP

    ## Servidor IRC 211.34.149.4# Acceso a puertos IRCiptables -A FORWARD -d 211.34.149.4 -p tcp --dport 6666:6668 -j ACCEPT

    # Acceso a nuestra ip para gestionarloiptables -A FORWARD -s 210.195.55.15 -d 211.34.149.4 -p tcp --dport 22 -j ACCEPT

    # El resto, cerrariptables -A FORWARD -d 211.34.149.4 -j DROP

    ## Servidor NEWS 211.34.149.5# Acceso a puerto newsiptables -A FORWARD -d 211.34.149.5 -p tcp --dport news -j ACCEPT

    # Acceso a nuestra ip para gestionarloiptables -A FORWARD -s 213.194.68.115 -d 211.34.149.5 -p tcp --dport 22 -j ACCEPT

    # El resto, cerrariptables -A FORWARD -d 211.34.149.5 -j DROP

    ## Servidor B2B 211.34.149.6# Acceso a puerto 443iptables -A FORWARD -d 211.34.149.6 -p tcp --dport 443 -j ACCEPT

    # Acceso a una ip para gestionarlo

    iptables -A FORWARD -s 81.34.129.56 -d 211.34.149.6 -p tcp --dport 3389 -j ACCEPT

    # El resto, cerrariptables -A FORWARD -d 211.34.149.6 -j DROP

    ## Servidor CITRIX 211.34.149.7# Acceso a puerto 1494iptables -A FORWARD -d 211.34.149.7 -p tcp --dport 1494 -j ACCEPT

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    22/80

    Pgina 22

    # Acceso a una ip para gestionarloiptables -A FORWARD -s 195.55.234.2 -d 211.34.149.7 -p tcp --dport 3389 -j ACCEPT

    # acceso a otro puerto quiza de BBDDiptables -A FORWARD -s 195.55.234.2 -d 211.34.149.7 -p tcp --dport 1434 -j ACCEPT

    iptables -A FORWARD -s 195.55.234.2 -d 211.34.149.7 -p udp --dport 1433 -j ACCEPT

    # El resto, cerrariptables -A FORWARD -d 211.34.149.7 -j DROP

    echo " OK . Verifique que lo que se aplica con: iptables -L -n"# Fin del script

    Con estafirewall y sobretodo gracias a las reglas de DROP que metemos tras especificar lo que dejamos abiertos, protegeremosde manera eficaz todos lo puertos abiertos de las mquinas.

    Firewall con poltica por defecto DROPQu supone el hecho de establecer como poltica por defecto la denegacin?

    Se debe explicitar cada conexin permitida en los dos sentidos. Se debe conocer perfectamente qu debe estar abierto y qu no. Es mucho ms difcil de mantener y si se hace conviene hacerlo desde el principio. No todo es ms trabajo: tambin supone unfirewall mucho ms seguro.

    En el ejemplo de la DMZ ya se presentaba esta situacin en las reglas forward de una a otra red. Para ilustrar el DROP pordefecto, vamos a mostrar la configuracin del ejemplo anterior defirewall entre redes pero con poltica por defecto DROP.

    #!/bin/sh## SCRIPT de IPTABLES - ejemplo del manual de iptables## Ejemplo de script para firewall entre redes con DROP por defectoecho -n Aplicando Reglas de Firewall...

    ## FLUSH de reglasiptables -Fiptables -Xiptables -Ziptables -t nat F

    ## Establecemos politica por defecto: DROP!!!iptables -P INPUT DROPiptables -P OUTPUT DROPiptables -P FORWARD DROP

    ## Empezamos a filtrar## Nota: eth0 es el interfaz conectado al router y eth1 a la LAN# A nuestro firewall tenemos acceso total desde la nuestra IPiptables -A INPUT -s 210.195.55.15 -j ACCEPTiptables -A OUTPUT -d 210.195.55.15 -j ACCEPT

    # Para el resto no hay acceso al firewall# En principio esta de ms, pero si rebajamos los permisos temporalmente# nos cubre las espaldasiptables -A INPUT -s 0.0.0.0/0 -j DROP

    ## Ahora podemos ir metiendo las reglas para cada servidor## Como sern paquetes con destino a otras mquinas se aplica FORWARD## Servidor WEB 211.34.149.2# Acceso a puerto 80iptables -A FORWARD -d 211.34.149.2 -p tcp --dport 80 -j ACCEPTiptables -A FORWARD -s 211.34.149.2 -p tcp --sport 80 -j ACCEPT

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    23/80

    Pgina 23

    # Acceso a nuestra ip para gestionarloiptables -A FORWARD -s 210.195.55.15 -d 211.34.149.2 -p tcp --dport 22 -j ACCEPTiptables -A FORWARD -s 211.34.149.2 -d 210.195.55.15 -p tcp --sport 22 -j ACCEPT

    ## Servidor MAIL 211.34.149.3

    # Acceso a puerto 25, 110 y 143iptables -A FORWARD -d 211.34.149.3 -p tcp --dport 25 -j ACCEPTiptables -A FORWARD -s 211.34.149.3 -p tcp --sport 25 -j ACCEPTiptables -A FORWARD -d 211.34.149.3 -p tcp --dport 110 -j ACCEPTiptables -A FORWARD -s 211.34.149.3 -p tcp --sport 110 -j ACCEPTiptables -A FORWARD -d 211.34.149.3 -p tcp --dport 143 -j ACCEPTiptables -A FORWARD -s 211.34.149.3 -p tcp --sport 143 -j ACCEPT

    # Acceso a gestion SNMPiptables -A FORWARD -s 210.195.55.15 -d 211.34.149.3 -p udp --dport 169 -j ACCEPTiptables -A FORWARD -s 211.34.149.3 -d 210.195.55.15 -p udp --sport 169 -j ACCEPT

    # Acceso a nuestra ip para gestionarloiptables -A FORWARD -s 210.195.55.15 -d 211.34.149.3 -p tcp --dport 22 -j ACCEPTiptables -A FORWARD -s 211.34.149.3 -d 210.195.55.15 -p tcp --sport 22 -j ACCEPT

    ## Servidor IRC 211.34.149.4# Acceso a puertos IRCiptables -A FORWARD -d 211.34.149.4 -p tcp --dport 6666:6668 -j ACCEPTiptables -A FORWARD -s 211.34.149.4 -p tcp --sport 6666:6668 -j ACCEPT

    # Acceso a nuestra ip para gestionarloiptables -A FORWARD -s 210.195.55.15 -d 211.34.149.4 -p tcp --dport 22 -j ACCEPTiptables -A FORWARD -s 211.34.149.4 -d 210.195.55.15 -p tcp --sport 22 -j ACCEPT

    ## Servidor NEWS 211.34.149.5# Acceso a puerto newsiptables -A FORWARD -d 211.34.149.5 -p tcp --dport news -j ACCEPTiptables -A FORWARD -s 211.34.149.5 -p tcp --sport news -j ACCEPT

    # Acceso a nuestra ip para gestionarloiptables -A FORWARD -s 213.194.68.115 -d 211.34.149.5 -p tcp --dport 22 -j ACCEPT

    iptables -A FORWARD -s 211.34.149.5 -d 213.194.68.115 -p tcp --sport 22 -j ACCEPT

    # El resto, cerrariptables -A FORWARD -d 211.34.149.5 -j DROP

    ## Servidor B2B 211.34.149.6# Acceso a puerto 443iptables -A FORWARD -d 211.34.149.6 -p tcp --dport 443 -j ACCEPTiptables -A FORWARD -s 211.34.149.6 -p tcp --sport 443 -j ACCEPT

    # Acceso a una ip para gestionarloiptables -A FORWARD -s 81.34.129.56 -d 211.34.149.6 -p tcp --dport 3389 -j ACCEPTiptables -A FORWARD -s 211.34.149.6 -d 81.34.129.56 -p tcp --sport 3389 -j ACCEPT

    ## Servidor CITRIX 211.34.149.7# Acceso a puerto 1494

    iptables -A FORWARD -d 211.34.149.7 -p tcp --dport 1494 -j ACCEPTiptables -A FORWARD -s 211.34.149.7 -p tcp --sport 1494 -j ACCEPT

    # Acceso a una ip para gestionarloiptables -A FORWARD -s 195.55.234.2 -d 211.34.149.7 -p tcp --dport 3389 -j ACCEPTiptables -A FORWARD -s 211.34.149.7 -d 195.55.234.2 -p tcp --sport 3389 -j ACCEPT

    # acceso a otro puerto quiza de BBDDiptables -A FORWARD -s 195.55.234.2 -d 211.34.149.7 -p tcp --dport 1434 -j ACCEPT

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    24/80

    Pgina 24

    iptables -A FORWARD -s 211.34.149.7 -d 195.55.234.2 -p tcp --sport 1434 -j ACCEPT

    # acceso a otro puerto quiza de BBDDiptables -A FORWARD -s 195.55.234.2 -d 211.34.149.7 -p udp --dport 1433 -j ACCEPTiptables -A FORWARD -s 211.34.149.7 -d 195.55.234.2 -p udp --sport 1433 -j ACCEPT

    echo " OK . Verifique que lo que se aplica con: iptables -L -n"# Fin del script

    Ya esta, hemos levantado un verdadero muro entre internet y el conjunto de servidores que esta tras el firewall. No se puede nihacer unping a las mquinas, salvo que se haya dado acceso total a una IP. Si quisieramos dar acceso alping, pondramosalgo as:Es ms llevadero aplicar el DROP por defecto cuando el firewall es para la propia mquina. El primer escenario de esta manualtrataba sobre este caso.

    Depurar el funcionamiento del firewallProgramas tiles: iptraf Sin duda alguna uno de los programas ms prcticos para depurar el firewall es iptables, ya que con el

    podemos observar si la conexiones se establecen o no; es un programa de consola que es aconsejable controlarya que muestra en tiempo real el trfico que atraviesa nuestra mquina con todo lujo de detalles: origen/destinode IPs y puertos, trfico total o trfico total segn la interfaz de red, etc Si vemos muchas conexionessimultneas y nos perdemos, existe la posibilidad de aplicar filtros para captar slo aquello que nos interesa.

    nmap La herramienta para escanear puertos por excelencia. Es una herramienta de consola rpida, efectiva y conmultitud de opciones. Podemos usarla desde mquinas ajenas a nuestra red para comprobar si realmente elfirewall esta filtrando correctamente y en cierta manera para hacernos una idea de que "visin" pueden tener loshackers de nuestro sistema.

    shell En el propio scriptdelfirewall podemos aadir algunas opciones para descubrir fallos de sintaxis en las reglas.Claro, imaginemos que tenemos unfirewall de 40 lneas y una de ellas falla cuando ejecutamos el script. Cules? Es probable que el mensaje de error no aclare lo suficiente, por eso se puede aadir algo as al final de cadaregla:

    ...iptables -A INPUT -s 195.55.234.2 -j ACCEPT && echo " regla-21 ok"

    iptables -A INPUT -s 213.62.89.145 -j ACCEPT && echo " regla-22 ok"...

    Si la regla se ejecuta bien mostrar el mensajito de ok. Otra opcin sera ir eliminando o comentando reglashasta dar con la regla que tiene la sintaxis incorrecta. Cabe resear que puede fallar una regla, pero a partir deella el resto se ejecutan con normalidad.

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    25/80

    Pgina 25

    Captulo 2

    Introduccin a SquidSquid es el software para servidor Proxy ms popular y extendidoentre los sistemas operativos basados sobre UNIX. Es muyconfiable, robusto y verstil. Al ser software libre, adems deestar disponible el cdigo fuente, est libre del pago de costosaslicencias por uso o con restriccin a un uso con determinadonmero de usuarios.Entre otras cosas, Squid puede hacer Proxy y cache con losprotocolos HTTP, FTP, GOPHER y WAIS, Proxy de SSL,cache transparente, WWCP, aceleracin HTTP, cache deconsultas DNS y otras muchas ms como filtracin de contenidoy control de acceso por IP y por usuario.

    Software necesarioPara poder llevar a cabo los procedimientos descritos en este captulo y documentos relacionados, usted necesitar tenerinstalado al menos lo siguiente:

    squid-2.4.STABLE1

    iptables-1.2.4

    kernel-2.4.18-24

    Todos los parches de seguridad disponibles para la versin de Red Hat que est utilizando.

    Tmese en consideracin que, de ser posible, se debe utilizar siempre las versiones estables ms recientes de todo el softwareque vaya a instalar al realizar los procedimientos descritos en este captulo, a fin de contar con los parches de seguridadnecesarios. Ninguna versin de Squidanterior a la 2.4.STABLE1 se considera como apropiada debido a fallas de seguridad degran importancia, y ningn administrador competente utilizara una versin inferior a la 2.4.STABLE1. Por favor visite el sitoWeb de su distribucin predilecta para estar al tanto de cualquier aviso de actualizaciones de seguridad.ParaRed Hat Linux 7.2, 7.3, 8.0 y 9 hay paquetera de actualizacin en los siguientes enlaces:

    ftp://updates.redhat.com/7.2/en/os/i386/ , si su distribucin est basada en Red Hat 7.2 ftp://updates.redhat.com/7.3/en/os/i386/ , si su distribucin est basada en Red Hat 7.3 ftp://updates.redhat.com/8.0/en/os/i386/ , si su distribucin est basada en Red Hat 8.0 ftp://updates.redhat.com/9/en/os/i386/ , si su distribucin est basada en Red Hat 9

    Instalacin del software necesario.Regularmente Squidno se instala de manera predeterminada a menos que especifique o contrario durante la instalacin delsistema operativo, sin embargo viene incluido en casi todas las distribuciones actuales. El procedimiento de instalacin esexactamente el mismo que con cualquier otro software:

    mount /mnt/cdrom/rpm -Uvh /mnt/cdrom/*/RPMS/squid-*.i386.rpm

    eject

    Iptables se utilizar para generar las reglas necesarias para el guin de Enmascaramiento de IP. Se instala por defecto en todaslas distribuciones actuales que utilicen kernel-2.4.

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    26/80

    Pgina 26

    NotaEs importante tener actualizado el kernel por diversas cuestiones de seguridad.No es recomendable utilizar versiones del kernel anteriores a la 2.4.18.Para referencia de cmo instalar paquetes RPM, y cmo actualizar el kernel, vea

    el LOC 1-2-3, Captulos 4 y 5.

    Antes de continuarTenga en cuenta que este manual ha sido comprobado varias veces y ha funcionado en todos los casos y si algo no funcionasolo significa que usted no lo ley a detalle y no sigui correctamente las indicaciones. Evite dejar espacios vacos en lugaresindebidos.El siguiente es un ejemplo de como no debe des-comentarse un parmetro.

    # Opcin incorrectamente des-comentadahttp_access 3128

    El siguiente es un ejemplo de como si debe des-comentarse un parmetro.

    # Opcin correctamente des-comentadahttp_access 3128

    Configuracin bsica.Squid utiliza el fichero de configuracin localizado en /etc/squid/squid.conf , y podr trabajar sobre este utilizando sueditor de texto preferido. Existen un gran nmero de parmetros, de los cuales recomendamos configurar los siguientes:

    http_port

    cache_mem

    cache_dir

    ftp_user

    ftp_passive

    Al menos una Lista de Control de Acceso

    Al menos una Regla de Control de Acceso

    httpd_accel_host

    httpd_accel_port

    httpd_accel_with_proxy

    Que puerto utilizar para Squid? Parmetro http_portSquidpor defecto utilizar el puerto 3128 para atender peticiones, sin embargo se puede especificar que lo haga en cualquierotro puerto o bien que lo haga en varios puertos a la vez.

    En el caso de un Proxy Transparente, regularmente se utilizar el puerto 80 y se valdr del re-direccionamiento de peticiones demodo tal que no habr necesidad alguna de modificar la configuracin de los navegadores Web para utilizar el servidor Proxy.Bastar con utilizar como puerta de enlace al servidor. Es importante recordar que los servidores Web, como Apache, tambinutilizan dicho puerto, por lo que ser necesario reconfigurar el servidor Web para utiliza otro puerto disponible, o biendesinstalar o deshabilitar el servidor Web.

    Hoy en da ya no es del todo prctico el utilizar un Proxy Transparente, a menos que se trate de un servicio de Cyber-Caf uoficina pequea, siendo que uno de los principales problemas con los que lidian los administradores es el mal uso y/o abuso delacceso a Internet por parte del personal. Es por esto que puede resultar ms conveniente configurar un servidor Proxy conrestricciones por contrasea, lo cual no puede hacerse con un Proxy Transparente, debido a que se requiere un dilogo denombre de usuario y contrasea.

    Regularmente algunos programas utilizados comnmente por los usuarios suelen traer por defecto el puerto 8080 -servicio decacheo WWW- para utilizarse al configurar que servidor proxy utilizar. Si queremos aprovechar esto en nuestro favor y

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    27/80

    Pgina 27

    ahorrarnos el tener que dar explicaciones innecesarias al usuario, podemos especificar que Squidescuche peticiones en dichopuerto tambin. Siendo as localice la seccin de definicin de http_port, y especifique:

    # You may specify multiple socket addresses on multiple lines.# Default: http_port 3128http_port 3128http_port 8080

    Si desea incrementar la seguridad, puede vincularse el servicio a una IP que slo se pueda acceder desde la red local.Considerando que el servidor utilizado posee una IP 192.168.1.254, puede hacerse lo siguiente:

    #You may specify multiple socket addresses on multiple lines.# Default: http_port 3128http_port 192.168.1.254:3128http_port 192.168.1.254:8080

    Cunta memoria utilizar? Parmetro cache_memEl parmetro cache_mem establece la cantidad ideal de memoria para lo siguiente:

    Objetos en trnsito. Objetos Hot. Objetos negativamente almacenados en el cach.

    Los datos de estos objetos se almacenan en bloques de 4 Kb. El parmetro cache_memespecifica un lmite mximo en eltamao total de bloques acomodados, donde los objetos en trnsito tienen mayor prioridad. Sin embargo los objetos Hot yaquellos negativamente almacenados en el cach podrn utilizar la memoria no utilizada hasta que esta sea requerida. De sernecesario, si un objeto en trnsito es mayor a la cantidad de memoria especificada, Squid exceder lo que sea necesario parasatisfacer la peticin.

    Por defecto se establecen 8 MB. Puede especificarse una cantidad mayor si as se considera necesario, dependiendo esto de loshbitos de los usuarios o necesidades establecidas por el administrador.Si se posee un servidor con al menos 128 MB de RAM, establezca 16 MB como valor para este parmetro:

    cache_mem 16 MB

    Cuanto desea almacenar de Internet en el disco duro? Parmetro cache_dirEste parmetro se utiliza para establecer que tamao se desea que tenga el cache en el disco duro para Squid. Para entender estoun poco mejor, responda a esta pregunta: Cunto desea almacenar de Internet en el disco duro? Por defecto Squidutilizar uncache de 100 MB, de modo tal que encontrar la siguiente lnea:

    cache_dir ufs /var/spool/squid 100 16 256

    Se puede incrementar el tamao del cache hasta donde lo desee el administrador. Mientras ms grande el cache, ms objetos dealmacenarn en ste y por lo tanto se utilizar menos el ancho de banda. La siguiente lnea establece un cache de 700 MB:

    cache_dir ufs /var/spool/squid 700 16 256

    Los nmeros 16 y 256 significan que el directorio del cache contendr 16 subdirectorios con 256 niveles cada uno. No

    modifique esto nmeros, no hay necesidad de hacerlo.NotaEs muy importante considerar que si se especifica un determinado tamao decache y este excede al espacio real disponible en el disco duro, Squid sebloquear inevitablemente. Sea cauteloso con el tamao de cache especificado.

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    28/80

    Pgina 28

    Aviso de problemas con la cache - Parmetro cache_mgr.Por defecto, si algo ocurre con el Cache, como por ejemplo que muera el proceso, se enviar un mensaje de aviso a la cuentawebmaster del servidor. Puede especificarse una distinta si acaso se considera conveniente.

    cache_mgr [email protected]

    Acceso FTP annimo a Servidores - Parmetro ftp_userAl acceder a un servidor FTP de manera annima, por defecto Squidenviar como contrasea Squid@. Si se desea que elacceso annimo a los servidores FTP sea ms informativo, o bien si se desea acceder a servidores FTP que validan laautenticidad de la direccin de correo especificada como contrasea, puede especificarse la direccin de correo electrnico queuno considere pertinente.

    ftp_user [email protected]

    Acceso FTP pasivo a traves de un Firewall - Parmetro ftp_passiveSi se tiene un muro contrafuegos que no permite acceder a servidores FTP ms que de modo pasivo, debe habilitarseftp_passive con el valor on.

    ftp_passive on

    Control de accesoEs necesario establecerListas de Control de Acceso que definan una red o bien ciertas maquinas en particular. A cada lista se leasignar unaRegla de Control de Acceso que permitir o denegar el acceso a Squid. Procedamos a entender como definir unasy otras.

    Control de acceso - ListasRegularmente una lista de control de acceso se establece siguiendo la siguiente sintaxis:

    acl [nombre de la lista] src [lo que compone a la lista]

    Si uno desea establecer una lista de control de acceso que defina sin mayor trabajo adicional a toda la red local definiendo la IPque corresponde a la red y la mscara de la sub-red. Por ejemplo, si se tienen una red donde las mquinas tienen direcciones IP

    192.168.1.n con mscara de sub-red 255.255.255.0, podemos utilizar lo siguiente:acl miredlocal src 192.168.1.0/255.255.255.0

    Tambin puede definirse una Lista de Control de Acceso invocando un fichero localizado en cualquier parte del disco duro, yen el cual se en cuenta una lista de direcciones IP. Ejemplo:

    acl permitidos src "/etc/squid/permitidos"

    El fichero /etc/squid/permitidos contendra algo como siguiente:

    192.168.1.1192.168.1.2192.168.1.3192.168.1.15

    192.168.1.16192.168.1.20192.168.1.40

    Lo anterior estara definiendo que la Lista de Control de Acceso denominadapermitidos estara compuesta por lasdirecciones IP incluidas en el fichero /etc/squid/permitidos .

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    29/80

    Pgina 29

    Control de acceso - ReglasEstas definen si se permite o no el acceso a Squid. Se aplican a las Listas de Control de Acceso. Deben colocarse en la seccinde reglas de control de acceso definidas por el administrador, es decir, a partir de donde se localiza la siguiente leyenda:

    # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS

    La sintaxis bsica es la siguiente:

    http_access [deny o allow] [lista de control de acceso]

    En el siguiente ejemplo consideramos una regla que establece acceso permitido a Squid a la Lista de Control de Accesodenominada permitidos:

    http_access allow permitidos

    Tambin pueden definirse reglas valindose de la expresin !, la cual significa excepcin. Pueden definirse, por ejemplo, doslistas de control de acceso, una denominada lista1 y otra denominada lista2, en la misma regla de control de acceso, en donde seasigna una expresin a una de estas. La siguiente establece que se permite el acceso a Squid a lo que comprenda lista1 exceptoaquello que comprenda lista2:

    http_access allow lista1 !lista2

    Este tipo de reglas son tiles cuando se tiene un gran grupo de IP dentro de un rango de red al que se debe permitir acceso, yotro grupo dentro de la misma red al que se debe denegar el acceso.

    Aplicando Listas y Reglas de control de acceso.Una vez comprendido el funcionamiento de la Listas y las Reglas de Control de Acceso, procederemos a determinar cualesutilizar para nuestra configuracin.

    Caso 1Considerando como ejemplo que se dispone de una red 192.168.1.0/255.255.255.0, si se desea definir toda la red local,utilizaremos la siguiente lnea en la seccin de Listas de Control de Acceso:

    acl todalared src 192.168.1.0/255.255.255.0

    Habiendo hecho lo anterior, la seccin de listas de control de acceso debe quedar ms o menos del siguiente modo:

    # Recommended minimum configuration:

    acl all src 0.0.0.0/0.0.0.0

    acl manager proto cache_object

    acl localhost src 127.0.0.1/255.255.255.255

    acl todalared src 192.168.1.0/255.255.255.0

    A continuacin procedemos a aplicar la regla de control de acceso:

    http_access allow todalared

    Habiendo hecho lo anterior, la zona de reglas de control de acceso debera quedar ms o menos de este modo:

    # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS

    #

    http_access allow localhost

    http_access allow todalared

    http_access deny all

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    30/80

    Pgina 30

    La regla http_access allow todalared permite el acceso a Squid a la Lista de Control de Acceso denominadatodalared, la cual est conformada por 192.168.1.0/255.255.255.0. Esto significa que cualquier mquina desde 192.168.1.1hasta 192.168.1.254 podr acceder a Squid.

    Caso 2Si solo se desea permitir el acceso a Squid a ciertas direcciones IP de la red local, deberemos crear un fichero que contengadicha lista. Genere el fichero /etc/squid/lista , dentro del cual se incluirn solo aquellas direcciones IP que deseaconfirmen la Lista de Control de acceso. Ejemplo:

    192.168.1.1192.168.1.2192.168.1.3192.168.1.15192.168.1.16192.168.1.20192.168.1.40

    Denominaremos a esta lista de control de acceso como redlocal:

    acl redlocal src "/etc/squid/lista"

    Habiendo hecho lo anterior, la seccin de listas de control de acceso debe quedar ms o menos del siguiente modo:

    # Recommended minimum configuration:

    acl all src 0.0.0.0/0.0.0.0

    acl manager proto cache_object

    acl localhost src 127.0.0.1/255.255.255.255

    acl redlocal src "/etc/squid/lista"

    A continuacin procedemos a aplicar la regla de control de acceso:

    http_access allow redlocal

    Habiendo hecho lo anterior, la zona de reglas de control de acceso debera quedar ms o menos de este modo:

    # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS

    #

    http_access allow localhost

    http_access allow redlocal

    http_access deny all

    La regla http_access allow redlocal permite el acceso a Squid a laLista de Control de Acceso denominada redlocal,la cual est conformada por las direcciones IP especificadas en el fichero /etc/squid/lista . sto significa que cualquiermquina no incluida en /etc/squid/lista no tendr acceso a Squid.

    Cache con aceleracin.Cuando un usuario hace peticin hacia un objeto en Internet, este es almacenado en el cache de Squid. Si otro usuario hacepeticin hacia el mismo objeto, y este no ha sufrido modificacin alguna desde que lo accedi el usuario anterior, Squid

    mostrar el que ya se encuentra en el cache en lugar de volver a descargarlo desde Internet. Esta funcin permite navegarrpidamente cuando los objetos ya estn en el cache de Squid y adems optimiza enormemente la utilizacin del ancho debanda.En la seccin HTTPD-ACCELERATOR OPTIONS deben habilitarse los siguientes parmetros:

    httpd_accel_host virtualhttpd_accel_port 0httpd_accel_with_proxy on

  • 8/14/2019 Linux Original Courseware - LX4 Advanced Network Administrator

    31/80

    Pgina 31

    Si se trata de un Proxy transparente deben utilizarse con las siguientes opciones, considera