6927538-shorewall
TRANSCRIPT
Shorewall
Instalacioacuten y Actualizacioacuten de Shorewall
Importante
Antes de actualizar aseguacuterese de revisar Problemas al Actualizar
Nota
Los RPM de Shorewall estaacuten firmados Para evitar alertas tales como la siguiente
warning shorewall-301-1noarchrpm V3 DSA signature NOKEY key ID 6c562ac4
descargue la llave GPG de Shorewall y ejecute el siguiente comando
rpm --import shorewallgpgkey
Instalar usando RPM
Para instalar Shorewall usando RPM
1 Aseguacuterese que tiene el paquete RPM correcto
El paquete RPM estandar descargado desde shorewallnet y sus espejos se sabe funciona con SuSEtrade Power PPCtrade Trustixtrade y TurboLinuxtrade Tambieacuten hay paquetes RPM provisto por Simon Matter que estaacuten ajustados para RedHatFedoratrade y otro paquete de Jack Coates que estaacute personalizado para Mandraketrade Todos estos estaacuten disponibles en la paacutegina de descarga
Si intenta instalar el paquete equivocado probablemente no funcione
2 Instale el RPM
rpm -ivh ltshorewall rpmgt
Precaucioacuten
Algunos usuarios tienen el haacutebito de usar el comando rpm -U para instalar como para actualziar paquetes Si usa este comando cuando instale el RPM Shorewall entonces tendraacute que manualmente habilitar Shorewall para se inicie al arranque del sistema usando chkconfig insserv o cualquiera sea el utilitario para manipular los enlaces simboacutelicos
Nota
Algunos usuarios SuSE han encontrando un problema en donde rpm reporta un conflicto con kernel lt= 22 incluso si un kernel 24 estaacute instalado Si esto sucede simplemente use la opcioacuten --nodeps de rpm
rpm -ivh --nodeps ltshorewall rpmgt
Nota
Shorewall depende del paquete iproute Desafortunadamente algunas distribuciones llaman a este paquete iproute2 lo que provoca que la instalacioacuten de Shorewall falle con el mensaje diagnoacutestico
error failed dependenciesiproute is needed by shorewall-22x-1
Este problema no debiera ocurrir si estaacute usando el paquete RPM correcto (vea 1 arriba) pero puede resolverse daacutendole la vuelta usando la opcioacuten --nodeps de rpm
rpm -ivh --nodeps ltshorewall rpmgt
3 Edite los archivos de configuracioacuten para ajustarse a sus necesidades de configuracioacuten
Alerta
USTED NO PUEDE SIMPLEMENTE INSTALAR EL RPMY MANDAR EL COMANDO ldquoshorewall startrdquo SE REQUIERE DE CONFIGURACION ANTES DE QUE EL FIREWALL PUEDA ARRANCAR SI ENVIA EL COMANDO ldquostartrdquo Y EL FIREWALL FALLA EN ARRANCAR SU SISTEMA NO ACEPTARA NINGUN TRAFICO DE RED SI ESTO SUCEDE USE EL COMANDO ldquoshorewall clearrdquo PARA RESTAURAR LA CONECTIVIDAD DE RED
4 Habilite el inicio eliminando el archivo etcshorewallstartup_disabled (Si estaacute usando Shorewall 213 o posterior edite etcshorewallshorewallconf y ponga STARTUP_ENABLED en Yes)
5 Arranque el firewall tipeando
shorewall start
Instalar usando tarball
Para instalar Shorewall usando el tarball y el guioacuten de instalacioacuten
1 desempaque el tarball (tar -zxf shorewall-xyztgz)2 cd al directorio shorewall (la versioacuten estaacute condificada en el nombre del directorio como en ldquoshorewall-
300rdquo)3 Tipee
installsh
4 Edite los archivos de configuracioacuten para ajustarse a sus necesidades de configuracioacuten5 Habilite el inicio editando etcshorewallshorewallconf y poniendo STARTUP_ENABLED en Yes)6 Arranque el firewall tipeando
shorewall start
7 Si el guioacuten install no fue capaz de configurar Shorewall para arrancarse automaacuteticamente al arrancar el sistema (boot) vea estas instrucciones
Instalar usando lrp
Para instalar mi versioacuten de Shorewall en un disco fresco de Bering simplemente remplace el archivo ldquoshorwalllrprdquo en la imagen con el arhivo que descargoacute Por ejemplo si descarga shorewall-lrp-220tgz entonces deberaacute renombrar el archivo a shorwalllrp y remplazar el archivo de ese nombre en el disco Bering con el nuevo Entonces proceda a configurar Shorewall como se describe en la documentacioacuten Bering (o Bering uClibc)
Instalar usando deb
Importante
Una vez que ha instalado el paquete dev y antes de intentar configurar Shorewall por favor lea el concejo de Lorenzo Martignoni el Mantenedor de Shorewall Debian
ldquoPara maacutes informacioacuten acerca del uso de Shorewall en sistemas Debian mire en usrsharedocshorewallREADMEDebian provisto por el paquete Debian de shorewallrdquo
La forma maacutes faacutecil de instalar Shorewall en Debian es usar use apt-get
apt-get install shorewall
Para asegurar que estaacute instalando la uacuteltima versioacuten de Shorewall por favor modifique su archivo etcaptsourceslist como se describe aquiacute
Una vez que haya completado la configuracioacuten Shorewall puede habilitar el arranque de Shorewall al arranque del sistema (boot) poniendo startup=1 en etcdefaultshorewall
Notas Generales Acerca de la Actualizacioacuten Shorewall
La mayoriacutea de los problemas asociados con las actualizaciones tienen su origen en dos causas
bull El usuario no leyoacute y siguioacute las consideraciones de migracioacuten en las notas de liberacioacuten (estos se reproducen en Problemas al Actualizar Shorewall)
bull El usuario no manejoacute bien el archivo etcshorewallshorewallconf durante la actualizacioacuten Shorewall estaacute disentildeado para tener un comportamiento por omisioacuten persistente a lo largo de la evolucioacuten del producto Para que esto sea posible el disentildeo asume que usted no remplazaraacute su archivo shorewallconf actual durante las actualizaciones Se recomienda que despueacutes de instalar por primera vez Shorewall modifique etcshorewallshorewallconf tal que prevenga que el manejador de paquetes lo sobrescriba durante subsiguientes actualizaciones (ya que hay que agregar STARTUP_ENABLED tal modificacioacuten asegura que usted debe manualmente cambiar los ajustes de esta opcioacuten) Si se siente realmente impulsado a tener los uacuteltimos comentarios y opciones en su shorewallconf entonces proceda con cuidado Deberiacutea determinar cuaacuteles nuevas opciones han sido agregadas y debe reajustar sus valores (eg OPTION=) de otra forma obtendraacute un comportamiento diferente al que espera
Actualizando con RPM
Si ya tiene el RPM Shorewall instalado y estaacute actualizando a una nueva versioacuten
1 Aseguacuterese de tener el paquete RPM correcto
El paquete estandar RPM de shorewallnet y sus espejos se saben funcionan con SuSe Power PPC Trustix y TurboLinux Hay tambieacuten un paquete RPM provisto por Simon Matter que ha sido ajustado para RedHatFedora y otro paquete provisto por Jack Coates que estaacute personalizado para Mandrake Si intenta usar el paquete equivocado probablemente no funcione
2 Actualice el RPM
rpm -Uvh ltshorewall rpm filegt
Nota
Algunos usuarios SuSE han encontrado un problema donde rpm reporta un conflicto con kernel lt= 22 auacuten cuando estaacute instalado un kernel 24 Si esto sucede simplemente use la opcioacuten --nodeps de rpm
rpm -Uvh --nodeps ltshorewall rpmgt
Nota
A partir de Shorewall 140 Shorewall depende del paquete iproute Desafortunadamente algunas distribuciones llaman a este paquete por otro nombre iproute2 lo que causa que Shorewall falle con el mensaje diagnoacutestico
error failed dependenciesiproute is needed by shorewall-140-1
A esto se le puede dar la vuelta usando la opcioacuten --nodeps de rpm
rpm -Uvh --nodeps ltshorewall rpmgt
3 Vea si hay alguna incompatibilidad entre su configuracioacuten y la nueva versioacuten de Shorewall y corrija si es necesario
shorewall check
4 Reinicie el firewall
shorewall restart
Actualizando con tarball
Si ya tiene instalado Shorewall y estaacute actualizando a una nueva versioacuten usando tarball
1 desempaque el tarball
tar -zxf shorewall-xyztgz
2 cd al directorio shorewall (la versioacuten estaacute codificada en el nombre del directorio como en ldquoshorewall-301rdquo)
3 Tipee
installsh
4 Vea si hay alguna incompatibilidad entre su configuracioacuten y la nueva versioacuten de Shorewall y corrija si es necesario
shorewall check
5 Arranque el firewall tipeando
shorewall start
6 Si el guioacuten isntall no fue capaz de configurar Shorewall para su arranque automaacutetico al arrancar el sistema (boot) vea estas instrucciones
Actualizando con lrp
Lo siguiente fue contribucioacuten de Charles Steinkuehler en la lista de correos Leaf
Es MUY simplesoacutelo ponlo en un nuevo CD y reinicia -) De hecho soacutelo bromeo ligeramenteasiacute es exactamente como actualizo mis firewalls de produccioacuten La facilidad de respaldo parcial que agregue a Dachstein permite que los datos de configuracioacuten sean almacenados separadamente del resto del paquete
Una vez que los datos de configuracioacuten estaacuten separados del resto del paquete es faacutecil actualizar el paquete mientras mantiene su configuracioacuten actual (en mi caso insertando un CD y reiniciando)
Los usuarios que no estaacuten corriendo con muacuteltiples rutas de paquetes y usan respaldos parciales tambieacuten pueden actualizar un paquete soacutelo toma un poco maacutes de trabajo La idea general es usar el respaldo parcial para salvar su configuracioacuten remplazar el paquete y restaurar sus viejos archivos de configuracioacuten Instrucciones paso-a-paso para una forma de hacer esto (asumiendo un sistema convencional de un-floppy LEAF) seriacutea
bull Haga una copia de respaldo de su disco de firewall (NUEVO) Este es el disco al que agregaraacute el paquete actualizado
bull Dele formato a un floppy para usarlo como ubicacioacuten temporal para sus archivos de configuracioacuten (XFER) Este disco deberiacutea tener el mismo formato que el disco del firewall (y simplemente pudiera ser simplemente otra copia de respaldo de firewall actual)
bull Aseguacuterese de tener una copia qeu funcione de su fierwall (VIEJO) en alguacuten lugar seguro que NO usaraacute durante este proceso De esta forma si algo sale mal usted simplemente reinicia con el disco VIEJO para volver a una configuracioacuten que funciona
bull Remueva su disco actual de configuracioacuten de firewall y remplaacutecelo con el disco XFERbull Use el menuacute de respaldo lrcfg para ahcer un respaldo parcial del paquete que desea actualizar estando
seguros acerca de los archivos en el disco XFER A partir del menuacute de respaldo
t e ltentergt p ltentergtb ltpackage1gt ltentergtb ltpackage2gt ltentergt
bull Descargue y copie el paquete que desea actualizar en el disco NUEVObull Reinicie su firewall usando el disco NUEVOen este punto su actualizacioacuten tendraacute su configuracioacuten por
omisioacutenbull Monte el disco XFER (mount -t msdos devfd0u1680 mnt)bull CD al directorio raiacutez (cd )bull Extraiga manualmente los datos de configuracioacuten para cada paquete que actualizoacute
tar -xzvf mntpackage1lrptar -xzvf mntpackage2lrp
bull Desmonte (umount mnt) y retire el disco XFERbull Usando lrcfg haga respaldos FULL de sus paquetes actualizadosbull Reinicie verificando que el firewall funciona como se espera Algunos archivos de configuracioacuten puede que
necesiten ser entonados para que funcionen apropiadamente con los binarios actualizados del paquete
Importante
El nuevo archivo paquete ltpaquetegtlocal puede usar para entonar cuaacuteles archivos estaacuten incluidos (y excluidos) del respaldo parcial (vea el Dachstein-CD README para maacutes detalles) Si este archivo no existe los guiones de respaldo asumiraacuten que cualquier cosa del archivo ltpackagegtlist que reside en etc o varliblrpkg es parte de los datos de configuracioacuten y se usa para crear el respaldo parcial Si Shorewall pone algo en etc que no sea un archivo de configuracioacuten modificado por el usuario deberiacutea crearse un archivo apropiado shorwalllocal antes de hacer el respaldo parcial [Nota del Editor Shorewall coloca soacutelo archivos modificables por el usuario en etc]
Nota
Es obviamente posible hacer lo anterior en-sitio sin usar muacuteltiples discos e incluso sin hacer respaldos parciales (ie copiar archivos de configuracioacuten actuales a tmp manualmente extraer el nuevo paquete sobre el firewall que estaacute corriendo luego copiar o fusionar los datos desde tmp yo respaldoo similar) pero para cualquiera que sea capaz de toda esa gimnasia en la liacutenea de comandos es probable que lo pueda hacer sin ninguacuten tipo de instrucciones detalladas -)
Para maacutes informacioacuten de otras herramientas de actualizacioacuten LEAFBering mire en este artiacuteculo de Alex Rhomberg
Configurando Shorewall
Usted necesitaraacute editar algunos o todos los archivos de configuracioacuten para lograr la configuracioacuten deseada En la mayoriacutea de los casos las Guiacuteas Raacutepidas de Shorewall contienen toda la informacioacuten que usted necesita para comenzar
DesinstalarVolverAtraacutes
Vea ldquoVolverAtraacutes y Desinstalarrdquo
Firewall Baacutesico Dos-Interfaces
Introduccioacuten
El configurar un sistema Linux como firewall para una red pequentildea es relativamente una tarea simple si entiende los principios baacutesicos y sigue la documentacioacuten
Esta guiacutea no intenta profundizar en todas las facilidades de Shorewall A cambio se enfoca en lo que se requiere para configurar Shorewall en su configuracioacuten maacutes comuacuten
bull Sistema Linux usado como firewallrouter para una red local pequentildeabull Un uacutenica direccioacuten IP puacuteblica Si tiene maacutes de una direccioacuten IP puacuteblica esta no es la guiacutea que desea -- vea
la Guiacutea de Configuracioacuten de Shorewall bull Conexioacuten Internet por cable modem DSL ISDN Frame Relay discada
Aquiacute se muestra un esquemaacutetico de una instalacioacuten tiacutepica
Figura 1 Configuracioacuten comuacuten de firewall con dos interfaces
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windowstrade usted salvarlos como archivos Unixtrade si su editor soporta esta opcioacuten o debe pasarlo por el programa dos2unix antes de intentar de usarlos De forma similar si copia un archivo de configuracioacuten del disco duro en Windowstrade a un disco flexible debe pasarlos por dos2unix antes de usarlos con Shorewall
bull Versioacuten Windows trade de dos2unix bull Versioacuten Linux de dos2unix
Requerimientos de Sistema
Shorewall requiere que tenga instalado el paquete iprouteiproute2 (en RedHattrade el paquete se llama iproute) Usted puede saber si este paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando which para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se le recomienda primero leer a lo largo de la guiacutea para familiarizarse con los toacutepicos involucrados para luego volver sobre ella y hacer los cambios de configuracioacuten
Convenciones
Los puntos en los cuales se recomiendan cambios de configuracioacuten estaacuten sentildealadas
Las notas de configuracioacuten que son uacutenicas de LEAFBering estaacute marcadas con
PPTPADSL
Si tiene un Modem ADSL y usa PPTP para comunicarse con un servidor en ese modem usted debe hacer los cambios que se recomiendan aquiacute en adicioacuten a los que se explican abajo ADSL con PPTP se encuentra frecuentemente en Europa y notable Austria
Conceptos Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall -- para configuraciones simples encontraraacute que soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea
Alerta
Nota para los Usuarios Debian
Si instala usando deb encontraraacute que su directorio etcshorewall estaacute vaciacuteo Esto es intencional El esqueleto de archivos de configuracioacuten se pueden encontrar en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no planea modificarlos
Importante
Despueacutes que tiene instalado Shorewall localice las muestras two-interfaces
1 Si instaloacute usando RPM las muestras estaraacuten en el subdirectorio Samplestwo-interfaces del directorio de documentacioacuten de Shorewall Si no sabe donde estaacute el directorio de documentacioacuten Shorewall puede encontrarlo usando el siguiente comando
~ rpm -ql shorewall | fgrep two-interfacesusrsharedocpackagesshorewallSamplestwo-interfacesusrsharedocpackagesshorewallSamplestwo-interfacesinterfacesusrsharedocpackagesshorewallSamplestwo-interfacesmasqusrsharedocpackagesshorewallSamplestwo-interfacespolicyusrsharedocpackagesshorewallSamplestwo-interfacesroutestoppedusrsharedocpackagesshorewallSamplestwo-interfacesrulesusrsharedocpackagesshorewallSamplestwo-interfaceszones~
2 Si instaloacute usando el tarball las muestras estaacuten en el directorio Samplestwo-interfaces en el tarball3 Si instaloacute usando deb las muestras estaacuten en usrsharedocshorewallexamplestwo-interfaces
En la medida que se explica cada archivo le sugerimos que vea el archivo en cuestioacuten en su sistema -- cada archivo contiene instrucciones detallads de configuracioacuten y entradas por omisioacuten
Shorewall ve la red sobre la cual trabaja como si estuviera compuesta de un conjunto de zonas En la configuracioacuten de muestra two-interface se usan los siguientes nombres de zonas
ZONE TYPE OPTIONS IN OUT OPTIONS OPTIONSfw firewallnet ipv4loc ipv4
Las zonas se definen en el archivo etcshorewallzones
Note que Shorewall reconoce el sistema firewall como su propia zona - cuando se procesa el archivo etcshorewallzones el nombre de la zona firewall se almacena en la variable shell $FW que puede usarse para referirse a la zona del firewall a lo largo de la configuracioacuten de Shorewall
Las reglas acerca del traacutefico a permitir o rechazar se expresan en teacuterminos de zonas
bull Usted expresa su poliacutetica por omisioacuten para las conexiones desde una zona a otra en el archivo etcshorewallpolicy
bull Usted define excepciones para dichas poliacuteticas por omisioacuten en el archivo etcshorewallrules
Para cada solicitud de conexioacuten que ingresa al firewall la solicitud se verifica primero contra el archivo etcshorewllrules Si no aplica ninguna regla para la solicitud de conexioacuten entonces la primera poliacutetica en etcshorewallpolicy que coincida se aplica Si hay una accioacuten comuacuten definida para la poliacutetica en etcshorewallactions o usrshareshorewallactionsstd entonces esa accioacuten se ejecuta antes de la poliacutetica
El archivo etcshorewallpolicy que se incluye con la muestra two-interface tiene las siguientes poliacuteticas
SOURCE DEST POLICY LOG LEVEL LIMITBURSTloc net ACCEPTnet all DROP infoall all REJECT info
En la muestra two-interface la liacutenea abajo estaacute incluida pero estaacute comentada Si desea que su sistema firewall tenga acceso completo a los servidores en internet quite el comentario a esa liacutenea
SOURCE DEST POLICY LOG LEVEL LIMITBURST$FW net ACCEPT
Las poliacuteticas anteriores
bull Permitiraacuten todas las solicitudes de conexiones desde la red local hacia internetbull Desacartaacuten (ignoraraacuten) todas las solicitudes de conexioacuten desde internet hacia su firewall o red localbull Opcionalmente aceptar todas las solicitudes de conexiones desde el firewall hacia internet (si levantoacute el
comentario de la poliacutetica adicional)bull Rechazaraacuten todas las otras solicitudes de conexioacuten
Es importante notar que las poliacuteticas Shorewal (y las reglas) refieren a conexiones y no flujo de paquetes Con las poliacuteticas definidas en el archivo etcshorewallpolicy como se muestra arriba las conexiones se permiten desde la zona loc a la zona net incluso aunque no esten permitidas las conexiones desde la zona loc al propio firewall
En este punto edite su etcshorewallpolicy y haga los cambios que considere
Interfaces de Red
El firewall tiene dos interfaces de red Donde si bien la conectividad es a traveacutes de cable modem o Modem DSL la Interface Externa seraacute el adaptador ethernet que se encuentre conectado a dicho Modem (eg eth0) a menos que conecte viacutea Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta por un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces querraacute poner CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Interna seraacute un adaptador ethernet (eth1 o eth0) y conectaraacute a un hub o switch Sus computadores se conectaraacuten al mismo hubswitch (nota Si tiene un uacutenico sistema interno puede conectarlo directamente al firewall usando un cable cruzado)
Alerta
No conecte la interface interna y externa al mismo hub o switch exceptuado para pruebas Usted puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en etcshorewallinterfaces para todas las interfaces comunes al mismo hubswitch Usando tal configuracioacuten con un firewall en produccioacuten no es para nada recomendable
La muestra two-interface de Shorewall asume que la interface externa es eth0 y que la interface interna es eth1 Si su configuracioacuten difiere tendraacute que modificar la muesta acordemente en el archivo etcshorewallinterfaces Mientra esteacute ahiacute puede revisar la lista de opciones que le son especiacuteficas para las interfaces Algunas pistas
Tip
Si su interface externa es ppp0 o ippp0 puede remplazar en la segunda columna detect con ldquo-rdquo (sin las comillas)
Tip
Si su interface externa es ppp0 o ippp0 o si tiene una direccioacuten IP estaacutetica puede eliminar dhcp de la lista de opciones
Tip
Si su interface interna es un puente (bridge) cree If your internal interface is a bridge create using the brctl utility then you must add the routeback option to the option list
Direcciones IP
Antes de seguir avanzando debemos decir unas cuantas palabras acerca de las direcciones Internet Protocol (IP) Normalmente su ISP le asignaraacute una uacutenica direccioacuten IP Puacuteblica Esta direccioacuten puede ser asignada viacutea Dynamic Host Configuration Protocol (DHCP) o como parte del establecimiento de su conexioacuten cuando disca (modem estandar) o establece su conexioacuten PPP En raras ocasiones su ISP le asignaraacute una direccioacuten IP estaacutetica esto significa que usted configuraraacute la interface exerna de su firewall para usar permanentemente esa direccioacuten Sin embargo su direccioacuten IP asignada seraacute compartida por todos sus sistemas cuando accedan a Internet Usted tendraacute que asignar sus propias direcciones en su red interna (la Interface Interna en su firewall maacutes las otras computadores) El RFC 1918 reserva varios rangos de direcciones Privadas IP para ese propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Antes de arrancar Shoreall usted debe ver la direccioacuten IP de su interface externa y si es una dentro de los rangos descritos arriba deberiacutea quitar la opcioacuten norfc1918 de la entrada que corresponde a su interface externa en etcshorewallinterfaces
Usted querraacute asignar sus direcciones desde la misma subred Para nuestros propoacutesitos podemos considerar una subred que consista de un rango de direcciones xyz0 - xyz255 Tal subred tendraacute una maacutescara de red de 2552552550 La direccioacuten xyz0 se reserva como la Direccioacuten de Subred y xyz255 se reserva como la Direccioacuten de Difusioacuten de la Subred (Boradcast) En Shorewall una subred se describe usando la notacioacuten Classless InterDomain Routing (CIDR) que consiste de direcciones de subred seguida de 24 El ldquo24rdquo se refiere a la cantidad de 1 consecutivos a la cabeza de la maacutescara de red
Rango 1010100 - 101010255
Direccioacuten de Subred 1010100
Direccioacuten de Difusioacuten 101010255
Notacioacuten CIDR 101010024
Es convencioacuten asignarle la primera direccioacuten utilizable en la subred a la interface interna (1010101 en el ejemplo anterior) o la uacuteltima (101010254)
Uno de los propoacutesitos de hacer subredes es permitir a todas las computadoras en la subred entender queacute otras computadoras pueden comunicarse con ellas directamente Para comunicarse con sistemas fuera de la subre los sistemas deben enviar los paquetes a su detino final a traveacutes de un gateway (enrutador)
Sus computadoras locales (computer 1 y computer 2 en el diagrama arriba) deben ser configuradas con el default gateway a la direccioacuten IP de la interface interna del firewall
La discusioacuten a continuacioacuten repasa por encima los temas de subredes y enrutamiento Si estaacute interesado en aprender maacutes acerca del direccionamiento y el enrutamiento IP si le recomienda altamente el libro ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0 (enlace)
El resto de esta guiacutea asume que tiene su red dispuesta de esta forma
El default gateway para las computdores 1 y 2 seriacutea 101010254
Alerta
Su ISP puede que le asigne una direccioacuten RFC 1918 para su interface externa Si dicha direccioacuten estaacute en la subred 101010024 entonces tendraacute que seleccionar una subred DIFERENTE RFC 1918 para su red local
Enmascaramiento IP (SNAT)
Las direcciones reservadas por el RFC 1918 son a veces referidas como no-ruteable debido a que los enrutadores en el corazoacuten de Internet no se renviacutean los paquetes IP cuando tienen como destino una direccioacuten RFC 1918 Cuando uno de su sistemas locales (digamos computer 1) enviacutea una solicitud de conexioacuten a una maacutequina en Internet el firewall debe hacer Network Address Translation (NAT Traduccioacuten de Direccioacuten de Red) El firewall rescribe la direccioacuten de origen en el paquete para que sea la direccioacuten de la interface externa del firewall en otras palabras el
firewall hace parecer que la solicitud de conexioacuten fueacute originada en el propio firewall Esto es necesario hacerlo para la maaacutequina destino sea capaz de enrutar la respuesta de vuelta hasta el firewall (recuerde que los paquetes cuyos destinos es una direccioacuten RFC 1918 no son enrutados a traveacutes de internet para que la respuesta vuelva su origen en computer 1) Cuando el firewall recibe un paquete de respuesta rescribe la direccioacuten de destino de vuelta a 1010101 y enviacutea el paquete a computer 1
En los sistemas Linux el proceso anterior es conocido como Enmascaramiento IP pero tambieacuten veraacute el uso del teacutermino Source Network Address Translation (SNAT) Shorewall sigue la convencioacuten que usa Netfilter
bull Enmascaramiento (Masquerade) describe el caso donde se permite al sistema firewall detectar automaacuteticamente la direccioacuten de la interface externa
bull SNAT se refiere al caso donde expliacutecitamente especifica la direccioacuten origen que desea usar en los paquetes salientes
En Shorewall tanto Enmascaramiento y SNAT se configuran con entradas en el archivo etcshorewallmasq Normalmente usaraacute Enmascaramiento si su direccioacuten IP en la interface externa es dinaacutemica y SNAT en el caso de direccioacuten IP estaacutetica
Si la interface externa de su firewall es eth0 no se necesita modificar el archivo provisto con la muestra De otra forma edite etcshorewallmasq y cambie la primera columna para que refleje el nombre de su interface externa y la segunda columna el nombre de su interface interna
Si su direccioacuten IP externa es estaacutetica puede enterarla en la tercrea columna en etcshorewallmasq si desea si bien su firewall funcionaraacute bien si no lo hace Enterar su direccioacuten IP estaacutetica en la tercera columna hace que procesar los paquetes salientes sea un poco maacutes eficiente
Si estaacute usando el paquete Debian por favor revise su archivo shorewallconf para asegurarse que lo siguiente esteacute escrito correctamente si no es asiacute caacutembielo apropiadamente
bull IP_FORWARDING=On
Desviacuteo de Puerto (DNAT)
Una de sus metas puede ser correr uno o mas servidores en sus sistemas locales Ya que dichas computadoras tienen direcciones RFC-1918 no es posible a los clientes en internet conectar directamente con ellas En cambio es necesario para dichos clientes dirigir sus solicitudes de conexioacuten hacia el firewall quien rescribe la direccioacuten destino a la direccioacuten de su servidor y enviacutea el paquete al servidor Cuando su servidor responde el firewall automaacuteticamente realiza SNAT para rescribir la direccioacuten origen en la respuesta
El proceso anterior es llamado Desviacuteo de Puerto o Port Forwarding o Destination Network Address Translation (DNAT) Usted puede configurar el desviacuteo de puerto usando las reglas DNAT en el archivo etcshorewallrules
La forma general de una regla de desviacuteo de puerto simple en etcshorewallrules es
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net locltserver local ip addressgt[ltserver portgt] ltprotocolgt ltportgt
Shorewall incorpora macros para muchas de las aplicaciones populares Revise en usrshareshorewallmacro para identificar los macros disponibles en su versioacuten Los macros simplemente crean reglas DNAT suministrando el protocolo y puerto(s) como se muestra en los siguientes ejemplos
Ejemplo 1 Servidor Web
Usted estaacute corriendo un Servidor Web en computer 2 y desea desviar el puerto entrante TCP 80 a este sistema
ACTION SOURCE DEST PROTO DEST PORT(S)WebDNAT net loc1010102
Ejemplo 2 Servidor FTP
Usted estaacute corriendo un Servidor FTP en computer 1 tal que desea entonces desviar el puerto entrante TCP 21 a ese sistema
ACTION SOURCE DEST PROTO DEST PORT(S)FTPDNAT net loc1010101
Para FTP necesitaraacute adicionalmente el motor de seguimiento de conexiones y el soporte NAT en su kernel Para los kernel provistos por el vendedor esto significa que los moacutedulos ip_conntrack_ftp y ip_nat_ftp deben ser cargados Shorewall cargaraacute automaacuteticamente dichos moacutedulos si estaacuten disponibles y localizados en el lugar estandar bajo libmodulesltkernel versiongtkernelnetipv4netfilter
Un par de puntos importantes a mantener en mente son
bull Usted debe probar la regla anterior desde un cliente externe a su red local (ie no pruebe desde un explorador en los computadores 1 o 2 o en el firewall) Si desea ser capaz de acceder a su servidor web yo ftp desde adentro de su fireall usando la direccioacuten IP de su interface externa vea Shorewall FAQ 2
bull Muchos ISPs bloquean las solicitudes entrantes al puerto 80 Si tiene problemas conectaacutendose a su servidor intente seguir la siguiente regla y conectar al puerto 5000
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net loc101010280 tcp 5000
En este punto modifique etcshorewallrules para agregar cualquier regla DNAT que se requiera
Importante
Cuando pruebe las reglas DNAT como las anteriores debe realizar las pruebas desde un cliente AFUERA de su fiewall (en la zona net ) Usted no puede probar estas reglas desde la parte interior del firewall
Para tips de Resolucioacuten de Problemas con DNAT vea FAQs 1a y 1b
Domain Name Server (DNS)
Normalmente cuando usted conecta con su ISP y como parte del proceso de obtener una direccioacuten IP el resolutor Domain Name Service (DNS) del firewall seraacute automaacuteticamente configurado (eg el archivo etcresolvconf seraacute rescrito) Alternativamente su ISP puede darle la direccioacuten IP de un par de servidores de nombre DNS para que manualmente los configure como servidores de nombre primario y secundario respectivamente Sin importar la forma en coacutemo se configuran los servidores DNS en su firewall es su responsabilidad configurar el resolutor en sus sistemas internos Puede escoger uno de dos caminos
bull Configura sus sistemas internos para que usen los servidores de nombre de su ISP Si su ISP le ha suministrado las direcciones de sus servidores DNS o de otros disponibles en su sitio web usted puede configurar sus sistemas internos para que usen dichas direcciones Si dicha informacioacuten no estaacute disponible vea en el archivo etcresolvconf de su sistema firewall -- los servidores de nombre son declarados con los registros nameserver en este archivo
bull Puede configurar un Cache Servidor de Nombres en su firewall Red Hattrade tiene un RPM para el cache servidor de nombres (el RPM tambieacuten requier el RPM bind) y para los usuarios Bering hay un dnscachelrp Si toma este camino usted configuraraacute sus sistemas internos para que usen el mismo firewall como su servidor primario (o uacutenico) de nombres Usariacutea la direccioacuten IP interna de su firewall (101010254 en el ejemplo anterior) como direccioacuten del servidor de nombres Para permitir a los sistemas locales hablar con el cache servidor de nombre deberaacute abrir el puerto 53 (ambos UDP y TCP) desde la red local hacia el firewall esto lo hace agregar las siguientes reglas en etcshorewallrules
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT loc $FW
Otras Conexiones
La muestra two-interface incluye las siguientes reglas
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT $FW net
Esta regla permite el acceso DNS desde su firewall y puede quitarse si ha quitado el comentario en la liacutenea de etcshorewallpolicy que permite todas las conexiones desde el firewall hacia internet
En la regla que se muestra arriba ldquoDNSACCEPTrdquo es un ejemplo de una invocacioacuten macro Shorewall incluye una cantidad de macros (vea usrshareshorewallmacro) y usted puede agregar los suyos
Usted no tiene que usar los macros cuando codifique las reglas en etcshorewallrules Shorewall arrancaraacute ligeramente maacutes raacutepido si codifica sus reglas directamente en vez de usar macros La regla anterior tambieacuten pudo haber sido codificada asiacute
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW net udp 53ACCEPT $FW net tcp 53
En los casos donde Shorewall no incluya un macro que satisfaga sus necesidades puede ya sea definir un nuevo macro o simplemente codificar las reglas apropiadas directamente
La muestra tambieacuten incluye
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT loc $FW
Esta regla permite correr el servidor SSH en su firewall y conectarse a eacutel desde los sistemas locales
Si desea habilitar otras conexiones desde su firewall a otros sistemas el formato general usando macros es
ACTION SOURCE DEST PROTO DEST PORT(S)ltmacrogtACCEPT $FW ltdestination zonegt
El formato general cuando no se usan macros predefinidos es
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW ltdestination zonegt ltprotocolgt ltportgt
Ejemplo 3 Servidor Web en el Firewall
Usted desea correr un servidor Web en su sistema firewall
ACTION SOURCE DEST PROTO DEST PORT(S)WebACCEPT net $FWWebACCEPT loc $FW
Estas dos reglas por supuesto seriacutean un agregado a las reglas listadas arriba bajo ldquoPuede configurar un Cache Servidor de Nombres en su firewall rdquo
Si no sabe queacute puerto y protcolo usa una aplicacioacuten particular mire aquiacute
Importante
No recomendados habilitar telnet desdehacia internet porque usa texto en claro para su comunicacioacuten (incluso para el login) Si desea acceso shell para su firewall desde Internet use SSH
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT net $FW
Los usuarios Bering querraacuten agregar las siguientes dos reglas para ser compatibles con la configuracioacuten Shorewall de Jacques
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT loc $FW udp 53 Allow DNS Cache to workACCEPT loc $FW tcp 80 Allow Weblet to work
Ahora edite su archivo etcshorewallrules para agregar o eliminar otras conexiones como se necesario
Algunos Concejos a Mantener en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque enviacutee solicitudes de conexioacuten a la direccioacuten IP de la interface externa de su firewall no significa que la solicitud seraacute asociada con la interface externa o con la zona ldquonetrdquo Cualquier traacutefico que se genere desde la red local seraacute asociado con su interface local y seraacute tratado como traacutefico loc-gtfw
bull Las direcciones IP son propiedades de los sistemas no de las interfaces Es un error pensar que su firewall sea capaz de renviar paquetes soacutelo porque puede hacerle ping a la direccioacuten IP de todas las interfaces IP del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping exitoso es que el enlace entre el sistema local y el firewall funciona bien y que probablemente tenga bien configurado el default gateway del sistema local
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zonas loc poniendo una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO necesariamente siguen automaacuteticamente el camino reverso al tomado por el paquete original de solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso en su camino Este tema usualmente salta a la palestra cuando se instala un firewall Shorewallall en paralelo a un gateway existente y se intenta usar DNAT a traveacutes del Shorewall sin cambiar el default gateway en el sistema que recibe la solicitud renviada Las solicitudes
entraraacuten por el firewall Shorewall donde la direccioacuten IP destino es rescrita pero la respuesta sale sin modificacioacuten por medio del gateway antiguo
bull Shorewall no tiene nocioacuten de adentro o afuera por siacute mismo Estos conceptos se incorporan en el coacutemo se configura Shorewall
Arrancando y Deteniendo Su Firewall
El procedimiento de instalacioacuten configura su sistema para arrancar Shorewall al arrancar (boot) el sistema pero el inicio de Shorewall estaacute deshabilitado por omisioacuten en su configuracioacuten asiacute que no intente arrancar su Shorewall hasta que termine la configuracioacuten Una vez que se hay completado la configuracioacuten de su firewall debe editar su etcshorewallshorewallconf y poner STARTUP_ENABLED=Yes
Importante
Los usuarios del paquete deb deben editar etcdefaultshorewall y poner startup=1
El firewall se arranca usando el comando ldquoshorewall startrdquo y se detiene con el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado para aquellas maacutequinas que tengan una entrada en el archivo etcshorewallroutestopped Un firewall detenido debe ser reiniciado usando el comando ldquoshorewall restartrdquo Si desea eliminar totalmente todo rastro de Shorewall de su configuracioacuten Netfilter use el comando ldquoshorewall clearrdquo
Esta muestra two-interface asume que usted desea habilitar el enrutamiento desdehacia eth1 (la red local) cuando Shorewall estaacute detenido Si su red local no estaacute conectada a eth1 o si desea habilitar el acceso desdehacia otras maacutequinas cambie apropiadamente el archivo etcshorewallroutestopped
Alerta
Si usted estaacute conectado a su firewall desde internet no enviacutee el comando ldquoshorewall stoprdquo a menos que haya agregado una entrada con la direccioacuten IP desde donde se conectoacute al archivo etcshorewallroutestopped Tampoco recomendamos usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarla con el comando ldquoshorewall tryrdquo
Lectura Adicional Recomendada
Se le recomienda altamente la paaacutegina Archivo de Facilidades de Configuracioacuten Comunes -- contiene tips uacutetiles acerca de las facilidades Shorewall que hacen maacutes faacutecil la administracioacuten del firewall Shorewall
Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
Una vez que tiene su arreglo de dos interfaces funcionando el siguiente paso loacutegico es agregar una conexioacuten de red inalaacutembrica El primer paso es agergar la tarjeta de red adicional a su firewall ya sea una tarjeta inalaacutembirca o una tarjeta ethernet que conecte a un punto de acceso inalaacutembirco
Precaucioacuten
Cuando agrega una tarjeta de red eacutesta no seraacute necesariamente detectada como la siguiente interface ethernet superior Por ejemplo si tiene dos interfaces ethernet en su sistema (eth0 and eth1) y agrega una tercera tarjeta que usa el mismo manejador (driver) de alguna de las dos anteriores la tercera no necesariamente seraacute detectada como eth2 mal pudiera ser detectada como eth0 o eth1 Usted puede ya sea vivir con ello o puede intercambiar las tarjetas en los soacutecates hasta que la nueva tarjeta sea detectada como eth2
Su nuevo arreglo de red luciraacute similar a la figura siguiente
La primera cosa notable es que las computadores en su red inalaacutembrica estan en una subred diferente a los de su red cableada en la LAN En el ejemplo de arriba hemos escogido usar la red 101011024 Las computadoras 3 y 4 seriacutean configuradas con la direccioacuten IP del default gateway IP a 101011254
Segundo hemos escogido incluir la red inalaacutembrica como parte de la zona local Ya que Shorewall permite el traacutefico en-la-zona por omisioacuten el traacutefico puede fluir libremente entre la red cableada local y la red inalaacutembrica
Hay soacutelo dos cambios necesarios para nuestra configuracioacuten Shorewall
bull Se necesita agregar una entrada a etcshorewallinterfaces para la interface de red inalaacutembrica Si la interface inalaacutembrica es wlan0 la entrada puede lucir asiacute
ZONE INTERFACE BROADCAST OPTIONSloc wlan0 detect maclist
Como se muestra en la entrada anterior se recomienda usar la opcioacuten maclist para el segmento inalaacutembrico En paralelo agregue las entradas para las computadoras 3 y 4 en etcshorewallmaclist para prevenir que sus vecinos obtengan una conexioacuten gratuita a internet a sus expensas Comience por omitir esta opcioacuten cuando tenga todo funcionando entonces agregue esta opcioacuten y configure su archivo etcshorewallmaclist
bull Usted necesita agregar una entrada al archivo etcshorewallmasq para enmascarar el traacutefico desde la red inalaacutembrica hacia internet Si su interface hacia internet es eth0 y su interface inalaacutembrica es wlan0 la entrada seriacutea asiacute
INTERFACE SUBNET ADDRESSeth0 wlan0
Otra cosa a notar para poner la red de Microsofttrade a funcionar entre las redes inalaacutembrica y cableada necesitaraacute ya sea un servidor WINS o un PDC Yo personalmente uso Samba configurado como servidor WINS corriendo en mi firewall Correr un servidor WINS en el firewall requiere las reglas que se listan en documentacioacuten ShorewallSamba
Guiacutea de Configuracioacuten de Shorewall
Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
Precaucioacuten
Este artiacuteculo aplica a Shorewall 30 en adelante Si estaacute corriendo una versioacuten previa de Shorewall 300 entonces por favor vea la documentacioacuten para dicha liberacioacuten
Introduccioacuten
Esta guiacutea estaacute destinada a los usuarios que desean configurar Shorewall en entornos donde un conjunto de direcciones IP puacuteblicas deben ser manejadas Para quienes desean conocer maacutes acerca de Shorewall en otros entornos revise las Guiacuteas Raacutepidas de Shorewall Debido a las amplias diferentes posibles aplicaciones la Guiacutea le daraacute directrices y apuntaraacute hacia otros recursos si ello es necesario
Precaucioacuten
Shorewall requiere el paquete iprouteiproute2 instalado (en RedHat el paquete se llama iproute) Usted puede saber si el paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando ldquowhichrdquo para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se recomienda que primero lea la guiacutea para que se familiarice con lo que estaacute involucrado y luego vuelva hacia atraacute y comience sobre los cambios de configuracioacuten requeridos Los puntos donde se recomiendan cambios de
configuracioacuten se sentildealan con
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windows usted debe salvarlos como archivos Unix si su editor soporta dicha opcioacuten o debe ejecutar dicho archivo con dos2unix antes de usarlo con Shorewall De forma similar si copia un archivo de configuracioacuten desde su disco duro en Windows a un disco flexible debe ejecutar previamente dos2unix contra la copia antes de usarla con Shorewall
bull Enlace a versioacuten Windows de dos2unix httpwwwsimtelnetpubpd51438html bull Enlace a versioacuten Linux de dos2unix httpwwwmegalomancom7Ehanysoftwarehd2u
Conceptos de Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall para la mayoriacutea de las configuraciones soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea El esqueleto de archivos de configuracioacuten es creado durante el Proceso de Instalacioacuten de Shorewall
Alerta
Nota para los Usuarios Debian
Si instala usando un deb encontraraacute que el directorio etcshorewall estaacute vaciacuteo Esto es intencional Los archivos del esqueleto correspondientes a la liberacioacuten correspondiente pueden encotrarse en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no los modifica
En la medida que introducimos cada archivo sugerimos que revise dicho archivo en su sistema cada archivo contiene instrucciones detalladas de configuracioacuten
Shorewall ve la red donde estaacute corriendo como si estuviera compuesta de un conjunto de zonas En esta guiacutea usaremos las siguientes zonas
fw
El propio sistema firewall
net
La red puacuteblica Internet
loc
La red local privada que usa direcciones IP privadas
dmz
Una Zona Desmilitarizada que aloja servidores de acceso puacuteblico
Las zonas se definen en el archivo etcshorewallzones
Importante
El archivo etcshorewallzones incluiacutedo en la distribucioacuten estaacute vaciacuteo Usted puede crear el conjunto de zonas estandar descritas anteriormente copiando y pegando el siguiente contenido en dicho archivo
ZONE TYPE OPTIONSfw firewallnet ipv4loc ipv4dmz ipv4
Note que Shorewall reconoce al sistema firewall como su propia zona El ejemplo anterior sigue la convencioacuten usual de nombres zona firewall fw El nombre especificado para la zona firewall (fw en el ejemplo anterior) se almacena en la variable shell $FW cuando se procesa el archivo etcshorewallzones Con la excepcioacuten del nombre asignado a la zona firewall Shorewall no asocia ninguacuten significado especial a los nombes de zona Las zonas son lo que USTED hace de ellas Ello significa que no debe esperar que Shorewall haga algo especial porque esta es la zona interna o porque esta es la zona DMZ
Edite el archivo etcshorewallzones y haga los cambios necesarios
La reglas acerca de queacute traacutefico permitir y negar se expresan en teacuterminos de las zonas
bull Usted expresa la poliacutetica por omisioacuten para conexiones desde una a otra zona en el archivo etcshorewallpolicy
bull Usted define excepciones a dichas poliacuteticas en etcshorewallrules
Shorewall se construye sobre el motor de kernel Netfilter Netfilter implementa la funcioacuten de seguimiento de conexiones que permite lo que se denomina como inspeccioacuten por estado (stateful inspection) de paquetes Esta capacidad de manejar los estados permite que las reglas de firewall sean definidas en teacuterminos de conexiones en vez de paquetes Con Shorewall usted
1 Identifica la zona origen (cliente)2 Identifica la zona destino (servidor)3 Si la POLITICA de la zona cliente a la zona servidor es lo que desea para esta pareja clienteservidor no
necesita hacer nada adicional4 Si la POLITICA no es lo que desea entonces debe agregar una regla La regla se expresa en teacuterminos de la
zona del cliente y de la zona del servidor
Soacutelo porque las conexiones de un tipo particular desde la zona A hacia el firewall estaacuten permitidas y que tambieacuten estaacuten permitidas desde el firewall a la zona B NO sigifica que estas conexiones esten permitidas entre la zona A y la zona B (en otras palabras las poliacuteticas y reglas que involucran a la zona firewall no son transitivas) A cambio significa que usted puede tener un proxy corriendo en el firewall que acepta conexiones desde la zona A y luego establece conexiones separadas por siacute mismo desde el firewall hacia la zona B
Para cada solicitud de conexioacuten que entra al firewall la solicitud se chequea primero contra el archivo etcshorewallrules Si ninguna regla del archivo aplica se aplica a la solicitud de conexioacuten la primera poliacutetica en etcshorewallpolicy que corresponda con dicha solicitud despueacutes de que haya pasado por la accioacuten comuacuten apropiada (si existe alguna)
Previo a Shorewall 220 el archivo por omisioacuten etcshorewallpolicy teniacutea las siguientes poliacuteticas
SOURCE ZONE DESTINATION ZONE POLICY LOG LIMITBURST LEVELloc net ACCEPTnet all DROP infoall all REJECT info
Importante
El archivo de poliacuteticas de la versioacuten actual estaacute vaciacuteo Usted puede copiar y pegar las entradas anteriores para crear un punto de partida para luego personalizar sus poliacuteticas
Las poliacuteticas anteriores haraacuten que
1 permitiraacute todas las solicitudes de conexiones desde la red local hacia internet2 descartaraacute (ignoraraacute) todas las solicitudes de conexiones desde internet hacia su firewall o red local y se
registra un mensaje a nivel informativo (info level log vea aquiacute la descripcioacuten de los niveles de registro)3 rechaza todas las solicitudes de conexiones y registra un mensaje a nivel informativo Cuando una solicitud
se rechaza el firewall devuelve un RST (si el protocolo es TCP) o un paquete ICMP de puerto-inalcanzabe para los otros protocolos
En este punto edite su archivo etcshorewallpolicy y haga los cambios que desee
Interfaces de Red
Para el resto de esta guiacutea nos referiremos al siguiente diagrama Si bien puede que no luzca como el de su red puede usarse para ilustrar los aspectos importantes de la configuracioacuten Shorewall
En este diagrama
bull La Zona DMZ consiste de los sistemas DMZ 1 y DMZ 2 Una DMZ se usa para aislar su servidors accesibles desde internet de sus sistemas locales tal que si uno de esos servidores estaacute comprometido auacuten tendraacute el firewall entre el sistema comprometido y sus sistemas en la red local
bull La Zona Local consiste de los sistemas Local 1 Local 2 y Local 3bull Todos los sistemas desde el ISP hacia afuera componen la Zona Internet
La forma maacutes cimple de definir zonas es asociar el nombre de la zona (previamente definida en etcshorewallzones) con una interface de red Esto se hace en el archivo etcshorewallinterfaces El firewall ilustrado arriba tiene tres interfaces de red Donde la conectividad hacia Internet es hecha a traveacutes de un cable Modem o DSL la Interface Externa seraacute un adaptador Ethernet que se ecneuntra conectado al Modem (eg eth0) a menos que conecte usando Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta usando un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces desearaacute establecer CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Local seraacute un adaptador Ethernet (eth0 eth1 o eth2) y conectaraacute a un hub o switch Sus computadores locales estaraacuten conectadas al mismo switch o hub (nota Si tiene un uacutenico sistema local puede conectar directamente el firewall al computador utilizando un cable cruzado)
Su Interface DMZ tambieacuten seraacute un adaptador Ethernet (eth0 eth1 o eth2) y se conectaraacute a un hub o switch Sus computadores DMZ seraacuten conectados al mismo switch o hub (nota Si tiene un uacutenico sistema DMZ puede conectar directamente el firewall al computador usando un cable cruzado)
Precaucioacuten
No conecte la interace interna y externa al mismo hub o switch exceptuando para pruebas Y estaacute corriendo Shorewall 147 o superior Cuando use estas versiones recientes puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en el archivo etcshorewallinterfaces para todas las interfaces conectadas al mismo hubswitch No se recomienda utilizar tal configuracioacuten con un firewall de produccioacuten
Para el resto de esta guiacutea asumiremos que
bull La Interface Externa es eth0bull La Interface Local es eth1bull La Interface DMZ es eth2
La cinfiguracioacuten Shorewall por omisioacuten no define el contenido de ninguna zona Para definir la configuracioacuten de arriba usando el archivo etcshorewallinterfaces dicho archivo contendriacutea
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectdmz eth2 detect
Note que la zona $FW no tiene una entrada en el archvio etcshorewallinterfaces
Edite el archivo etcshorewallinterfaces y defina las interfaces de red de su firewall asociadas con su zona Si tiene una zona disponible a traveacutes de maacutes de una interface de red simplemente incluya una entrada para cada interface y repita el nombre de zona tantas veces como haga falta con su respectiva interface de red
Ejemplo 1 Muacuteltiples Interfaces hacia una Zona
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectloc eth2 detect
Usted puede definir zonas maacutes complicadas usando el archivo etcshorewallhosts pero en la mayoriacutea de los casos ello no es necesario Vea Shorewall_and_Aliased_Interfaceshtml y Multiple_Zoneshtml para algunos ejemplos
Direccionamiento Subredes y Enrutamiento
Normalmente su ISP le asignaraacute un conjunto de direcciones IP Puacuteblicas Usted configuraraacute su interface externa de su firewall para que use una de dichas direcciones permanentemente y entonces tendraacute que decidir como usaraacute el resto de sus direcciones Antes de que contestemos esta pregunta es conveniente primero revisar los fundamentos
Si usted estaacute ampliamente familiarizado con el direccionamiento IP y el enrutamiento puede ir directo a la proacutexima seccioacuten
La siguiente discusioacuten revisa someramente el direccionamiento y el enrutamiento IP Si estaacute interesado en aprender maacutes acerca del tema le recomendaos ampliamente ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0
Direcciones IP
Las direcciones IP versioacuten 4 (IPv4) son nuacutemeros de 32 -bits La notacioacuten wxyz refiere a una direccioacuten donde el byte de orden superior tiene el valor ldquowrdquo el proacuteximo byte tiene el valor ldquoxrdquo etc Si tomamos la direccioacuten 1920214 y la expresamos en hexadecimal obtenemos
C000020E
o viacuteendolo como un entero de 32-bits
C000020E
Subredes
Usted comenzaraacute a escuchar los teacuterminos ldquored Clase Ardquo ldquored Clase B y red Clase C En los primeros diacuteas de IP las redes veniacutean en tres tamantildeos (existiacutea tambieacuten redes Clase D pero era usada de forma diferente)
Clase A - maacutescara de red 255000 size = 2 24Clase B - maacutescara de red 25525500 size = 2 16
Clase C - maacutescara de red 2552552550 size = 256
La clase de una red era determinada uniacutevocamente por el valor del byte superior de su direccioacuten tal que usted pudiera ver la direccioacuten IP e inmediatamente determinara la maacutescara asociada La maacutescara de red es un nuacutemero que cuando se aplica un Y loacutegico con la direccioacuten separa la direccioacuten de red del resto que es la direccioacuten de host Por ejemplo la direccioacuten Clase C 1920214 la direccioacuten de red es el hexadecimal C00002 y el nuacutemero de host es 0E
En la medida que internet crecioacute se hizo claro que tal particionamiento tan grueso de direcciones de 32-bits iva a ser muy limitante (iexclPreviamente a las grandes corporaciones y universidades le fueron asignadas sus propias redes clase A) Despueacutes de unos arranques en falso la teacutecnica de subredes evolucionoacute al sistema actual de redes maacutes pequentildeas la teacutecnica se le refiere como Classless InterDomain Routing (CIDR) Hoy diacutea cualquier sistema que usted probablemente use entenderaacute CIDR y las redes basadas en clases son ya algo del pasado
Una subred es un conjunto contiguo de direcciones IP tal que
1 La cantidad de direcciones en el conjunto es una potencia de 2 y2 La primera direccioacuten en el conjunto es un muacuteltiplo del tamantildeo del conjunto3 La primera direccioacuten en la subred se reserva y se le refiere como la direccioacuten de subred4 La uacutetima direccioacuten en la subred estaacute reservada como la direccioacuten de difusioacuten(broadcast) de la subred
Como puede ver por definicioacuten en cada subred de tamantildeo n hay (n - 2) direcciones utilizables (direcciones que se pueden asignar a maacutequinas) La primera y uacuteltima direccioacuten en la subred son utilizadas como direccioacuten de la subred y direccioacuten de difusioacuten respectivamente En consecuencia las subredes maacutes pequentildeas desperdician maacutes direcciones IP que las redes maacutes grandes
Ya que n es una potencia de dos faacutecilmente podemos calcular el Logaritmo-Base2 (log2) de n Para los tamantildeos maacutes comunes de subred el tamantildeo y su logaritmos base 2 son dados por la siguiente tabla
Tabla 1 Logaritmos Base-2
n log2 n (32 - log2 n)
8 3 29
16 4 28
32 5 27
64 6 26
128 7 25
256 8 24
512 9 23
1024 10 22
2048 11 21
4096 12 20
8192 13 19
16384 14 18
32768 15 17
65536 16 16
Notaraacute que la tabla arriba tambieacuten contiene una columna parar (32 - log2 n) Este nuacutemero es la Variable Length Subnet Mask (VLSM) para una red de tamantildeo n De la tabla arriba podemos derivar la siguiente que es un poco maacutes faacutecil de usar
Tabla 2 VLSM
Subnet Size VLSM Subnet Mask
8 29 255255255248
16 28 255255255240
32 27 255255255224
64 26 255255255192
128 25 255255255128
256 24 2552552550
512 23 2552552540
1024 22 2552552520
2048 21 2552552480
4096 20 2552552400
8192 19 2552552240
16384 18 2552551920
32768 17 2552551280
65536 16 25525500
2 24 8 255000
Note que la VLSM se escribe con barra (ldquordquo) -- a menudo escucharaacute de una subred de tamantildeo 64 referida como una subred ldquobarra 26rdquo y una de tamantildeo 8 referida como de ldquobarra 29rdquo
La maacutescara de subred es simplemente un nuacutemero de 32 bits con los primeros ldquoVLSMrdquo bits puestos a uno y los remanentes bits puestos a cero Por ejemplo para una subred de tamantildeo 64 la maacutescara de subred tiene los primeros 26 bits en uno
11111111111111111111111111000000 = FFFFFFC0 = FFFFFFC0 = 255255255192
La maacutescara de subred tiene la propiedad de que si se hace un Y loacutegico con una direccioacuten en la subred el resultado es la direccioacuten de la subred Igual de importante si hace un Y loacutegico de la maacutescara de subre con una direccioacuten fuera de la subred el resultado NO es la direccioacuten de la subred Como ya veremos esta propiedad de la maacutescara de subred es muy uacutetil para el enrutamiento
Para una subred cuya direccioacuten es abcd y cuyo Variable Length Subnet Mask es v denotamos la subred como ldquoabcdvrdquo usando Notacioacuten CIDR Ejemplo
Tabla 3 Subred
Subred 1010100 - 101010127
Tamantildeo Subred 128
Direccioacuten Subred 1010100
Direccioacuten Difusioacuten 101010127
Notacioacuten CIDR 101010025
Existen dos subredes degeneradas que merecen ser nombradas la subred con un miembro y la subre con 2 32 miembros
Tabla 4 32 y 0
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
error failed dependenciesiproute is needed by shorewall-22x-1
Este problema no debiera ocurrir si estaacute usando el paquete RPM correcto (vea 1 arriba) pero puede resolverse daacutendole la vuelta usando la opcioacuten --nodeps de rpm
rpm -ivh --nodeps ltshorewall rpmgt
3 Edite los archivos de configuracioacuten para ajustarse a sus necesidades de configuracioacuten
Alerta
USTED NO PUEDE SIMPLEMENTE INSTALAR EL RPMY MANDAR EL COMANDO ldquoshorewall startrdquo SE REQUIERE DE CONFIGURACION ANTES DE QUE EL FIREWALL PUEDA ARRANCAR SI ENVIA EL COMANDO ldquostartrdquo Y EL FIREWALL FALLA EN ARRANCAR SU SISTEMA NO ACEPTARA NINGUN TRAFICO DE RED SI ESTO SUCEDE USE EL COMANDO ldquoshorewall clearrdquo PARA RESTAURAR LA CONECTIVIDAD DE RED
4 Habilite el inicio eliminando el archivo etcshorewallstartup_disabled (Si estaacute usando Shorewall 213 o posterior edite etcshorewallshorewallconf y ponga STARTUP_ENABLED en Yes)
5 Arranque el firewall tipeando
shorewall start
Instalar usando tarball
Para instalar Shorewall usando el tarball y el guioacuten de instalacioacuten
1 desempaque el tarball (tar -zxf shorewall-xyztgz)2 cd al directorio shorewall (la versioacuten estaacute condificada en el nombre del directorio como en ldquoshorewall-
300rdquo)3 Tipee
installsh
4 Edite los archivos de configuracioacuten para ajustarse a sus necesidades de configuracioacuten5 Habilite el inicio editando etcshorewallshorewallconf y poniendo STARTUP_ENABLED en Yes)6 Arranque el firewall tipeando
shorewall start
7 Si el guioacuten install no fue capaz de configurar Shorewall para arrancarse automaacuteticamente al arrancar el sistema (boot) vea estas instrucciones
Instalar usando lrp
Para instalar mi versioacuten de Shorewall en un disco fresco de Bering simplemente remplace el archivo ldquoshorwalllrprdquo en la imagen con el arhivo que descargoacute Por ejemplo si descarga shorewall-lrp-220tgz entonces deberaacute renombrar el archivo a shorwalllrp y remplazar el archivo de ese nombre en el disco Bering con el nuevo Entonces proceda a configurar Shorewall como se describe en la documentacioacuten Bering (o Bering uClibc)
Instalar usando deb
Importante
Una vez que ha instalado el paquete dev y antes de intentar configurar Shorewall por favor lea el concejo de Lorenzo Martignoni el Mantenedor de Shorewall Debian
ldquoPara maacutes informacioacuten acerca del uso de Shorewall en sistemas Debian mire en usrsharedocshorewallREADMEDebian provisto por el paquete Debian de shorewallrdquo
La forma maacutes faacutecil de instalar Shorewall en Debian es usar use apt-get
apt-get install shorewall
Para asegurar que estaacute instalando la uacuteltima versioacuten de Shorewall por favor modifique su archivo etcaptsourceslist como se describe aquiacute
Una vez que haya completado la configuracioacuten Shorewall puede habilitar el arranque de Shorewall al arranque del sistema (boot) poniendo startup=1 en etcdefaultshorewall
Notas Generales Acerca de la Actualizacioacuten Shorewall
La mayoriacutea de los problemas asociados con las actualizaciones tienen su origen en dos causas
bull El usuario no leyoacute y siguioacute las consideraciones de migracioacuten en las notas de liberacioacuten (estos se reproducen en Problemas al Actualizar Shorewall)
bull El usuario no manejoacute bien el archivo etcshorewallshorewallconf durante la actualizacioacuten Shorewall estaacute disentildeado para tener un comportamiento por omisioacuten persistente a lo largo de la evolucioacuten del producto Para que esto sea posible el disentildeo asume que usted no remplazaraacute su archivo shorewallconf actual durante las actualizaciones Se recomienda que despueacutes de instalar por primera vez Shorewall modifique etcshorewallshorewallconf tal que prevenga que el manejador de paquetes lo sobrescriba durante subsiguientes actualizaciones (ya que hay que agregar STARTUP_ENABLED tal modificacioacuten asegura que usted debe manualmente cambiar los ajustes de esta opcioacuten) Si se siente realmente impulsado a tener los uacuteltimos comentarios y opciones en su shorewallconf entonces proceda con cuidado Deberiacutea determinar cuaacuteles nuevas opciones han sido agregadas y debe reajustar sus valores (eg OPTION=) de otra forma obtendraacute un comportamiento diferente al que espera
Actualizando con RPM
Si ya tiene el RPM Shorewall instalado y estaacute actualizando a una nueva versioacuten
1 Aseguacuterese de tener el paquete RPM correcto
El paquete estandar RPM de shorewallnet y sus espejos se saben funcionan con SuSe Power PPC Trustix y TurboLinux Hay tambieacuten un paquete RPM provisto por Simon Matter que ha sido ajustado para RedHatFedora y otro paquete provisto por Jack Coates que estaacute personalizado para Mandrake Si intenta usar el paquete equivocado probablemente no funcione
2 Actualice el RPM
rpm -Uvh ltshorewall rpm filegt
Nota
Algunos usuarios SuSE han encontrado un problema donde rpm reporta un conflicto con kernel lt= 22 auacuten cuando estaacute instalado un kernel 24 Si esto sucede simplemente use la opcioacuten --nodeps de rpm
rpm -Uvh --nodeps ltshorewall rpmgt
Nota
A partir de Shorewall 140 Shorewall depende del paquete iproute Desafortunadamente algunas distribuciones llaman a este paquete por otro nombre iproute2 lo que causa que Shorewall falle con el mensaje diagnoacutestico
error failed dependenciesiproute is needed by shorewall-140-1
A esto se le puede dar la vuelta usando la opcioacuten --nodeps de rpm
rpm -Uvh --nodeps ltshorewall rpmgt
3 Vea si hay alguna incompatibilidad entre su configuracioacuten y la nueva versioacuten de Shorewall y corrija si es necesario
shorewall check
4 Reinicie el firewall
shorewall restart
Actualizando con tarball
Si ya tiene instalado Shorewall y estaacute actualizando a una nueva versioacuten usando tarball
1 desempaque el tarball
tar -zxf shorewall-xyztgz
2 cd al directorio shorewall (la versioacuten estaacute codificada en el nombre del directorio como en ldquoshorewall-301rdquo)
3 Tipee
installsh
4 Vea si hay alguna incompatibilidad entre su configuracioacuten y la nueva versioacuten de Shorewall y corrija si es necesario
shorewall check
5 Arranque el firewall tipeando
shorewall start
6 Si el guioacuten isntall no fue capaz de configurar Shorewall para su arranque automaacutetico al arrancar el sistema (boot) vea estas instrucciones
Actualizando con lrp
Lo siguiente fue contribucioacuten de Charles Steinkuehler en la lista de correos Leaf
Es MUY simplesoacutelo ponlo en un nuevo CD y reinicia -) De hecho soacutelo bromeo ligeramenteasiacute es exactamente como actualizo mis firewalls de produccioacuten La facilidad de respaldo parcial que agregue a Dachstein permite que los datos de configuracioacuten sean almacenados separadamente del resto del paquete
Una vez que los datos de configuracioacuten estaacuten separados del resto del paquete es faacutecil actualizar el paquete mientras mantiene su configuracioacuten actual (en mi caso insertando un CD y reiniciando)
Los usuarios que no estaacuten corriendo con muacuteltiples rutas de paquetes y usan respaldos parciales tambieacuten pueden actualizar un paquete soacutelo toma un poco maacutes de trabajo La idea general es usar el respaldo parcial para salvar su configuracioacuten remplazar el paquete y restaurar sus viejos archivos de configuracioacuten Instrucciones paso-a-paso para una forma de hacer esto (asumiendo un sistema convencional de un-floppy LEAF) seriacutea
bull Haga una copia de respaldo de su disco de firewall (NUEVO) Este es el disco al que agregaraacute el paquete actualizado
bull Dele formato a un floppy para usarlo como ubicacioacuten temporal para sus archivos de configuracioacuten (XFER) Este disco deberiacutea tener el mismo formato que el disco del firewall (y simplemente pudiera ser simplemente otra copia de respaldo de firewall actual)
bull Aseguacuterese de tener una copia qeu funcione de su fierwall (VIEJO) en alguacuten lugar seguro que NO usaraacute durante este proceso De esta forma si algo sale mal usted simplemente reinicia con el disco VIEJO para volver a una configuracioacuten que funciona
bull Remueva su disco actual de configuracioacuten de firewall y remplaacutecelo con el disco XFERbull Use el menuacute de respaldo lrcfg para ahcer un respaldo parcial del paquete que desea actualizar estando
seguros acerca de los archivos en el disco XFER A partir del menuacute de respaldo
t e ltentergt p ltentergtb ltpackage1gt ltentergtb ltpackage2gt ltentergt
bull Descargue y copie el paquete que desea actualizar en el disco NUEVObull Reinicie su firewall usando el disco NUEVOen este punto su actualizacioacuten tendraacute su configuracioacuten por
omisioacutenbull Monte el disco XFER (mount -t msdos devfd0u1680 mnt)bull CD al directorio raiacutez (cd )bull Extraiga manualmente los datos de configuracioacuten para cada paquete que actualizoacute
tar -xzvf mntpackage1lrptar -xzvf mntpackage2lrp
bull Desmonte (umount mnt) y retire el disco XFERbull Usando lrcfg haga respaldos FULL de sus paquetes actualizadosbull Reinicie verificando que el firewall funciona como se espera Algunos archivos de configuracioacuten puede que
necesiten ser entonados para que funcionen apropiadamente con los binarios actualizados del paquete
Importante
El nuevo archivo paquete ltpaquetegtlocal puede usar para entonar cuaacuteles archivos estaacuten incluidos (y excluidos) del respaldo parcial (vea el Dachstein-CD README para maacutes detalles) Si este archivo no existe los guiones de respaldo asumiraacuten que cualquier cosa del archivo ltpackagegtlist que reside en etc o varliblrpkg es parte de los datos de configuracioacuten y se usa para crear el respaldo parcial Si Shorewall pone algo en etc que no sea un archivo de configuracioacuten modificado por el usuario deberiacutea crearse un archivo apropiado shorwalllocal antes de hacer el respaldo parcial [Nota del Editor Shorewall coloca soacutelo archivos modificables por el usuario en etc]
Nota
Es obviamente posible hacer lo anterior en-sitio sin usar muacuteltiples discos e incluso sin hacer respaldos parciales (ie copiar archivos de configuracioacuten actuales a tmp manualmente extraer el nuevo paquete sobre el firewall que estaacute corriendo luego copiar o fusionar los datos desde tmp yo respaldoo similar) pero para cualquiera que sea capaz de toda esa gimnasia en la liacutenea de comandos es probable que lo pueda hacer sin ninguacuten tipo de instrucciones detalladas -)
Para maacutes informacioacuten de otras herramientas de actualizacioacuten LEAFBering mire en este artiacuteculo de Alex Rhomberg
Configurando Shorewall
Usted necesitaraacute editar algunos o todos los archivos de configuracioacuten para lograr la configuracioacuten deseada En la mayoriacutea de los casos las Guiacuteas Raacutepidas de Shorewall contienen toda la informacioacuten que usted necesita para comenzar
DesinstalarVolverAtraacutes
Vea ldquoVolverAtraacutes y Desinstalarrdquo
Firewall Baacutesico Dos-Interfaces
Introduccioacuten
El configurar un sistema Linux como firewall para una red pequentildea es relativamente una tarea simple si entiende los principios baacutesicos y sigue la documentacioacuten
Esta guiacutea no intenta profundizar en todas las facilidades de Shorewall A cambio se enfoca en lo que se requiere para configurar Shorewall en su configuracioacuten maacutes comuacuten
bull Sistema Linux usado como firewallrouter para una red local pequentildeabull Un uacutenica direccioacuten IP puacuteblica Si tiene maacutes de una direccioacuten IP puacuteblica esta no es la guiacutea que desea -- vea
la Guiacutea de Configuracioacuten de Shorewall bull Conexioacuten Internet por cable modem DSL ISDN Frame Relay discada
Aquiacute se muestra un esquemaacutetico de una instalacioacuten tiacutepica
Figura 1 Configuracioacuten comuacuten de firewall con dos interfaces
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windowstrade usted salvarlos como archivos Unixtrade si su editor soporta esta opcioacuten o debe pasarlo por el programa dos2unix antes de intentar de usarlos De forma similar si copia un archivo de configuracioacuten del disco duro en Windowstrade a un disco flexible debe pasarlos por dos2unix antes de usarlos con Shorewall
bull Versioacuten Windows trade de dos2unix bull Versioacuten Linux de dos2unix
Requerimientos de Sistema
Shorewall requiere que tenga instalado el paquete iprouteiproute2 (en RedHattrade el paquete se llama iproute) Usted puede saber si este paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando which para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se le recomienda primero leer a lo largo de la guiacutea para familiarizarse con los toacutepicos involucrados para luego volver sobre ella y hacer los cambios de configuracioacuten
Convenciones
Los puntos en los cuales se recomiendan cambios de configuracioacuten estaacuten sentildealadas
Las notas de configuracioacuten que son uacutenicas de LEAFBering estaacute marcadas con
PPTPADSL
Si tiene un Modem ADSL y usa PPTP para comunicarse con un servidor en ese modem usted debe hacer los cambios que se recomiendan aquiacute en adicioacuten a los que se explican abajo ADSL con PPTP se encuentra frecuentemente en Europa y notable Austria
Conceptos Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall -- para configuraciones simples encontraraacute que soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea
Alerta
Nota para los Usuarios Debian
Si instala usando deb encontraraacute que su directorio etcshorewall estaacute vaciacuteo Esto es intencional El esqueleto de archivos de configuracioacuten se pueden encontrar en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no planea modificarlos
Importante
Despueacutes que tiene instalado Shorewall localice las muestras two-interfaces
1 Si instaloacute usando RPM las muestras estaraacuten en el subdirectorio Samplestwo-interfaces del directorio de documentacioacuten de Shorewall Si no sabe donde estaacute el directorio de documentacioacuten Shorewall puede encontrarlo usando el siguiente comando
~ rpm -ql shorewall | fgrep two-interfacesusrsharedocpackagesshorewallSamplestwo-interfacesusrsharedocpackagesshorewallSamplestwo-interfacesinterfacesusrsharedocpackagesshorewallSamplestwo-interfacesmasqusrsharedocpackagesshorewallSamplestwo-interfacespolicyusrsharedocpackagesshorewallSamplestwo-interfacesroutestoppedusrsharedocpackagesshorewallSamplestwo-interfacesrulesusrsharedocpackagesshorewallSamplestwo-interfaceszones~
2 Si instaloacute usando el tarball las muestras estaacuten en el directorio Samplestwo-interfaces en el tarball3 Si instaloacute usando deb las muestras estaacuten en usrsharedocshorewallexamplestwo-interfaces
En la medida que se explica cada archivo le sugerimos que vea el archivo en cuestioacuten en su sistema -- cada archivo contiene instrucciones detallads de configuracioacuten y entradas por omisioacuten
Shorewall ve la red sobre la cual trabaja como si estuviera compuesta de un conjunto de zonas En la configuracioacuten de muestra two-interface se usan los siguientes nombres de zonas
ZONE TYPE OPTIONS IN OUT OPTIONS OPTIONSfw firewallnet ipv4loc ipv4
Las zonas se definen en el archivo etcshorewallzones
Note que Shorewall reconoce el sistema firewall como su propia zona - cuando se procesa el archivo etcshorewallzones el nombre de la zona firewall se almacena en la variable shell $FW que puede usarse para referirse a la zona del firewall a lo largo de la configuracioacuten de Shorewall
Las reglas acerca del traacutefico a permitir o rechazar se expresan en teacuterminos de zonas
bull Usted expresa su poliacutetica por omisioacuten para las conexiones desde una zona a otra en el archivo etcshorewallpolicy
bull Usted define excepciones para dichas poliacuteticas por omisioacuten en el archivo etcshorewallrules
Para cada solicitud de conexioacuten que ingresa al firewall la solicitud se verifica primero contra el archivo etcshorewllrules Si no aplica ninguna regla para la solicitud de conexioacuten entonces la primera poliacutetica en etcshorewallpolicy que coincida se aplica Si hay una accioacuten comuacuten definida para la poliacutetica en etcshorewallactions o usrshareshorewallactionsstd entonces esa accioacuten se ejecuta antes de la poliacutetica
El archivo etcshorewallpolicy que se incluye con la muestra two-interface tiene las siguientes poliacuteticas
SOURCE DEST POLICY LOG LEVEL LIMITBURSTloc net ACCEPTnet all DROP infoall all REJECT info
En la muestra two-interface la liacutenea abajo estaacute incluida pero estaacute comentada Si desea que su sistema firewall tenga acceso completo a los servidores en internet quite el comentario a esa liacutenea
SOURCE DEST POLICY LOG LEVEL LIMITBURST$FW net ACCEPT
Las poliacuteticas anteriores
bull Permitiraacuten todas las solicitudes de conexiones desde la red local hacia internetbull Desacartaacuten (ignoraraacuten) todas las solicitudes de conexioacuten desde internet hacia su firewall o red localbull Opcionalmente aceptar todas las solicitudes de conexiones desde el firewall hacia internet (si levantoacute el
comentario de la poliacutetica adicional)bull Rechazaraacuten todas las otras solicitudes de conexioacuten
Es importante notar que las poliacuteticas Shorewal (y las reglas) refieren a conexiones y no flujo de paquetes Con las poliacuteticas definidas en el archivo etcshorewallpolicy como se muestra arriba las conexiones se permiten desde la zona loc a la zona net incluso aunque no esten permitidas las conexiones desde la zona loc al propio firewall
En este punto edite su etcshorewallpolicy y haga los cambios que considere
Interfaces de Red
El firewall tiene dos interfaces de red Donde si bien la conectividad es a traveacutes de cable modem o Modem DSL la Interface Externa seraacute el adaptador ethernet que se encuentre conectado a dicho Modem (eg eth0) a menos que conecte viacutea Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta por un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces querraacute poner CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Interna seraacute un adaptador ethernet (eth1 o eth0) y conectaraacute a un hub o switch Sus computadores se conectaraacuten al mismo hubswitch (nota Si tiene un uacutenico sistema interno puede conectarlo directamente al firewall usando un cable cruzado)
Alerta
No conecte la interface interna y externa al mismo hub o switch exceptuado para pruebas Usted puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en etcshorewallinterfaces para todas las interfaces comunes al mismo hubswitch Usando tal configuracioacuten con un firewall en produccioacuten no es para nada recomendable
La muestra two-interface de Shorewall asume que la interface externa es eth0 y que la interface interna es eth1 Si su configuracioacuten difiere tendraacute que modificar la muesta acordemente en el archivo etcshorewallinterfaces Mientra esteacute ahiacute puede revisar la lista de opciones que le son especiacuteficas para las interfaces Algunas pistas
Tip
Si su interface externa es ppp0 o ippp0 puede remplazar en la segunda columna detect con ldquo-rdquo (sin las comillas)
Tip
Si su interface externa es ppp0 o ippp0 o si tiene una direccioacuten IP estaacutetica puede eliminar dhcp de la lista de opciones
Tip
Si su interface interna es un puente (bridge) cree If your internal interface is a bridge create using the brctl utility then you must add the routeback option to the option list
Direcciones IP
Antes de seguir avanzando debemos decir unas cuantas palabras acerca de las direcciones Internet Protocol (IP) Normalmente su ISP le asignaraacute una uacutenica direccioacuten IP Puacuteblica Esta direccioacuten puede ser asignada viacutea Dynamic Host Configuration Protocol (DHCP) o como parte del establecimiento de su conexioacuten cuando disca (modem estandar) o establece su conexioacuten PPP En raras ocasiones su ISP le asignaraacute una direccioacuten IP estaacutetica esto significa que usted configuraraacute la interface exerna de su firewall para usar permanentemente esa direccioacuten Sin embargo su direccioacuten IP asignada seraacute compartida por todos sus sistemas cuando accedan a Internet Usted tendraacute que asignar sus propias direcciones en su red interna (la Interface Interna en su firewall maacutes las otras computadores) El RFC 1918 reserva varios rangos de direcciones Privadas IP para ese propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Antes de arrancar Shoreall usted debe ver la direccioacuten IP de su interface externa y si es una dentro de los rangos descritos arriba deberiacutea quitar la opcioacuten norfc1918 de la entrada que corresponde a su interface externa en etcshorewallinterfaces
Usted querraacute asignar sus direcciones desde la misma subred Para nuestros propoacutesitos podemos considerar una subred que consista de un rango de direcciones xyz0 - xyz255 Tal subred tendraacute una maacutescara de red de 2552552550 La direccioacuten xyz0 se reserva como la Direccioacuten de Subred y xyz255 se reserva como la Direccioacuten de Difusioacuten de la Subred (Boradcast) En Shorewall una subred se describe usando la notacioacuten Classless InterDomain Routing (CIDR) que consiste de direcciones de subred seguida de 24 El ldquo24rdquo se refiere a la cantidad de 1 consecutivos a la cabeza de la maacutescara de red
Rango 1010100 - 101010255
Direccioacuten de Subred 1010100
Direccioacuten de Difusioacuten 101010255
Notacioacuten CIDR 101010024
Es convencioacuten asignarle la primera direccioacuten utilizable en la subred a la interface interna (1010101 en el ejemplo anterior) o la uacuteltima (101010254)
Uno de los propoacutesitos de hacer subredes es permitir a todas las computadoras en la subred entender queacute otras computadoras pueden comunicarse con ellas directamente Para comunicarse con sistemas fuera de la subre los sistemas deben enviar los paquetes a su detino final a traveacutes de un gateway (enrutador)
Sus computadoras locales (computer 1 y computer 2 en el diagrama arriba) deben ser configuradas con el default gateway a la direccioacuten IP de la interface interna del firewall
La discusioacuten a continuacioacuten repasa por encima los temas de subredes y enrutamiento Si estaacute interesado en aprender maacutes acerca del direccionamiento y el enrutamiento IP si le recomienda altamente el libro ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0 (enlace)
El resto de esta guiacutea asume que tiene su red dispuesta de esta forma
El default gateway para las computdores 1 y 2 seriacutea 101010254
Alerta
Su ISP puede que le asigne una direccioacuten RFC 1918 para su interface externa Si dicha direccioacuten estaacute en la subred 101010024 entonces tendraacute que seleccionar una subred DIFERENTE RFC 1918 para su red local
Enmascaramiento IP (SNAT)
Las direcciones reservadas por el RFC 1918 son a veces referidas como no-ruteable debido a que los enrutadores en el corazoacuten de Internet no se renviacutean los paquetes IP cuando tienen como destino una direccioacuten RFC 1918 Cuando uno de su sistemas locales (digamos computer 1) enviacutea una solicitud de conexioacuten a una maacutequina en Internet el firewall debe hacer Network Address Translation (NAT Traduccioacuten de Direccioacuten de Red) El firewall rescribe la direccioacuten de origen en el paquete para que sea la direccioacuten de la interface externa del firewall en otras palabras el
firewall hace parecer que la solicitud de conexioacuten fueacute originada en el propio firewall Esto es necesario hacerlo para la maaacutequina destino sea capaz de enrutar la respuesta de vuelta hasta el firewall (recuerde que los paquetes cuyos destinos es una direccioacuten RFC 1918 no son enrutados a traveacutes de internet para que la respuesta vuelva su origen en computer 1) Cuando el firewall recibe un paquete de respuesta rescribe la direccioacuten de destino de vuelta a 1010101 y enviacutea el paquete a computer 1
En los sistemas Linux el proceso anterior es conocido como Enmascaramiento IP pero tambieacuten veraacute el uso del teacutermino Source Network Address Translation (SNAT) Shorewall sigue la convencioacuten que usa Netfilter
bull Enmascaramiento (Masquerade) describe el caso donde se permite al sistema firewall detectar automaacuteticamente la direccioacuten de la interface externa
bull SNAT se refiere al caso donde expliacutecitamente especifica la direccioacuten origen que desea usar en los paquetes salientes
En Shorewall tanto Enmascaramiento y SNAT se configuran con entradas en el archivo etcshorewallmasq Normalmente usaraacute Enmascaramiento si su direccioacuten IP en la interface externa es dinaacutemica y SNAT en el caso de direccioacuten IP estaacutetica
Si la interface externa de su firewall es eth0 no se necesita modificar el archivo provisto con la muestra De otra forma edite etcshorewallmasq y cambie la primera columna para que refleje el nombre de su interface externa y la segunda columna el nombre de su interface interna
Si su direccioacuten IP externa es estaacutetica puede enterarla en la tercrea columna en etcshorewallmasq si desea si bien su firewall funcionaraacute bien si no lo hace Enterar su direccioacuten IP estaacutetica en la tercera columna hace que procesar los paquetes salientes sea un poco maacutes eficiente
Si estaacute usando el paquete Debian por favor revise su archivo shorewallconf para asegurarse que lo siguiente esteacute escrito correctamente si no es asiacute caacutembielo apropiadamente
bull IP_FORWARDING=On
Desviacuteo de Puerto (DNAT)
Una de sus metas puede ser correr uno o mas servidores en sus sistemas locales Ya que dichas computadoras tienen direcciones RFC-1918 no es posible a los clientes en internet conectar directamente con ellas En cambio es necesario para dichos clientes dirigir sus solicitudes de conexioacuten hacia el firewall quien rescribe la direccioacuten destino a la direccioacuten de su servidor y enviacutea el paquete al servidor Cuando su servidor responde el firewall automaacuteticamente realiza SNAT para rescribir la direccioacuten origen en la respuesta
El proceso anterior es llamado Desviacuteo de Puerto o Port Forwarding o Destination Network Address Translation (DNAT) Usted puede configurar el desviacuteo de puerto usando las reglas DNAT en el archivo etcshorewallrules
La forma general de una regla de desviacuteo de puerto simple en etcshorewallrules es
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net locltserver local ip addressgt[ltserver portgt] ltprotocolgt ltportgt
Shorewall incorpora macros para muchas de las aplicaciones populares Revise en usrshareshorewallmacro para identificar los macros disponibles en su versioacuten Los macros simplemente crean reglas DNAT suministrando el protocolo y puerto(s) como se muestra en los siguientes ejemplos
Ejemplo 1 Servidor Web
Usted estaacute corriendo un Servidor Web en computer 2 y desea desviar el puerto entrante TCP 80 a este sistema
ACTION SOURCE DEST PROTO DEST PORT(S)WebDNAT net loc1010102
Ejemplo 2 Servidor FTP
Usted estaacute corriendo un Servidor FTP en computer 1 tal que desea entonces desviar el puerto entrante TCP 21 a ese sistema
ACTION SOURCE DEST PROTO DEST PORT(S)FTPDNAT net loc1010101
Para FTP necesitaraacute adicionalmente el motor de seguimiento de conexiones y el soporte NAT en su kernel Para los kernel provistos por el vendedor esto significa que los moacutedulos ip_conntrack_ftp y ip_nat_ftp deben ser cargados Shorewall cargaraacute automaacuteticamente dichos moacutedulos si estaacuten disponibles y localizados en el lugar estandar bajo libmodulesltkernel versiongtkernelnetipv4netfilter
Un par de puntos importantes a mantener en mente son
bull Usted debe probar la regla anterior desde un cliente externe a su red local (ie no pruebe desde un explorador en los computadores 1 o 2 o en el firewall) Si desea ser capaz de acceder a su servidor web yo ftp desde adentro de su fireall usando la direccioacuten IP de su interface externa vea Shorewall FAQ 2
bull Muchos ISPs bloquean las solicitudes entrantes al puerto 80 Si tiene problemas conectaacutendose a su servidor intente seguir la siguiente regla y conectar al puerto 5000
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net loc101010280 tcp 5000
En este punto modifique etcshorewallrules para agregar cualquier regla DNAT que se requiera
Importante
Cuando pruebe las reglas DNAT como las anteriores debe realizar las pruebas desde un cliente AFUERA de su fiewall (en la zona net ) Usted no puede probar estas reglas desde la parte interior del firewall
Para tips de Resolucioacuten de Problemas con DNAT vea FAQs 1a y 1b
Domain Name Server (DNS)
Normalmente cuando usted conecta con su ISP y como parte del proceso de obtener una direccioacuten IP el resolutor Domain Name Service (DNS) del firewall seraacute automaacuteticamente configurado (eg el archivo etcresolvconf seraacute rescrito) Alternativamente su ISP puede darle la direccioacuten IP de un par de servidores de nombre DNS para que manualmente los configure como servidores de nombre primario y secundario respectivamente Sin importar la forma en coacutemo se configuran los servidores DNS en su firewall es su responsabilidad configurar el resolutor en sus sistemas internos Puede escoger uno de dos caminos
bull Configura sus sistemas internos para que usen los servidores de nombre de su ISP Si su ISP le ha suministrado las direcciones de sus servidores DNS o de otros disponibles en su sitio web usted puede configurar sus sistemas internos para que usen dichas direcciones Si dicha informacioacuten no estaacute disponible vea en el archivo etcresolvconf de su sistema firewall -- los servidores de nombre son declarados con los registros nameserver en este archivo
bull Puede configurar un Cache Servidor de Nombres en su firewall Red Hattrade tiene un RPM para el cache servidor de nombres (el RPM tambieacuten requier el RPM bind) y para los usuarios Bering hay un dnscachelrp Si toma este camino usted configuraraacute sus sistemas internos para que usen el mismo firewall como su servidor primario (o uacutenico) de nombres Usariacutea la direccioacuten IP interna de su firewall (101010254 en el ejemplo anterior) como direccioacuten del servidor de nombres Para permitir a los sistemas locales hablar con el cache servidor de nombre deberaacute abrir el puerto 53 (ambos UDP y TCP) desde la red local hacia el firewall esto lo hace agregar las siguientes reglas en etcshorewallrules
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT loc $FW
Otras Conexiones
La muestra two-interface incluye las siguientes reglas
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT $FW net
Esta regla permite el acceso DNS desde su firewall y puede quitarse si ha quitado el comentario en la liacutenea de etcshorewallpolicy que permite todas las conexiones desde el firewall hacia internet
En la regla que se muestra arriba ldquoDNSACCEPTrdquo es un ejemplo de una invocacioacuten macro Shorewall incluye una cantidad de macros (vea usrshareshorewallmacro) y usted puede agregar los suyos
Usted no tiene que usar los macros cuando codifique las reglas en etcshorewallrules Shorewall arrancaraacute ligeramente maacutes raacutepido si codifica sus reglas directamente en vez de usar macros La regla anterior tambieacuten pudo haber sido codificada asiacute
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW net udp 53ACCEPT $FW net tcp 53
En los casos donde Shorewall no incluya un macro que satisfaga sus necesidades puede ya sea definir un nuevo macro o simplemente codificar las reglas apropiadas directamente
La muestra tambieacuten incluye
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT loc $FW
Esta regla permite correr el servidor SSH en su firewall y conectarse a eacutel desde los sistemas locales
Si desea habilitar otras conexiones desde su firewall a otros sistemas el formato general usando macros es
ACTION SOURCE DEST PROTO DEST PORT(S)ltmacrogtACCEPT $FW ltdestination zonegt
El formato general cuando no se usan macros predefinidos es
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW ltdestination zonegt ltprotocolgt ltportgt
Ejemplo 3 Servidor Web en el Firewall
Usted desea correr un servidor Web en su sistema firewall
ACTION SOURCE DEST PROTO DEST PORT(S)WebACCEPT net $FWWebACCEPT loc $FW
Estas dos reglas por supuesto seriacutean un agregado a las reglas listadas arriba bajo ldquoPuede configurar un Cache Servidor de Nombres en su firewall rdquo
Si no sabe queacute puerto y protcolo usa una aplicacioacuten particular mire aquiacute
Importante
No recomendados habilitar telnet desdehacia internet porque usa texto en claro para su comunicacioacuten (incluso para el login) Si desea acceso shell para su firewall desde Internet use SSH
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT net $FW
Los usuarios Bering querraacuten agregar las siguientes dos reglas para ser compatibles con la configuracioacuten Shorewall de Jacques
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT loc $FW udp 53 Allow DNS Cache to workACCEPT loc $FW tcp 80 Allow Weblet to work
Ahora edite su archivo etcshorewallrules para agregar o eliminar otras conexiones como se necesario
Algunos Concejos a Mantener en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque enviacutee solicitudes de conexioacuten a la direccioacuten IP de la interface externa de su firewall no significa que la solicitud seraacute asociada con la interface externa o con la zona ldquonetrdquo Cualquier traacutefico que se genere desde la red local seraacute asociado con su interface local y seraacute tratado como traacutefico loc-gtfw
bull Las direcciones IP son propiedades de los sistemas no de las interfaces Es un error pensar que su firewall sea capaz de renviar paquetes soacutelo porque puede hacerle ping a la direccioacuten IP de todas las interfaces IP del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping exitoso es que el enlace entre el sistema local y el firewall funciona bien y que probablemente tenga bien configurado el default gateway del sistema local
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zonas loc poniendo una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO necesariamente siguen automaacuteticamente el camino reverso al tomado por el paquete original de solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso en su camino Este tema usualmente salta a la palestra cuando se instala un firewall Shorewallall en paralelo a un gateway existente y se intenta usar DNAT a traveacutes del Shorewall sin cambiar el default gateway en el sistema que recibe la solicitud renviada Las solicitudes
entraraacuten por el firewall Shorewall donde la direccioacuten IP destino es rescrita pero la respuesta sale sin modificacioacuten por medio del gateway antiguo
bull Shorewall no tiene nocioacuten de adentro o afuera por siacute mismo Estos conceptos se incorporan en el coacutemo se configura Shorewall
Arrancando y Deteniendo Su Firewall
El procedimiento de instalacioacuten configura su sistema para arrancar Shorewall al arrancar (boot) el sistema pero el inicio de Shorewall estaacute deshabilitado por omisioacuten en su configuracioacuten asiacute que no intente arrancar su Shorewall hasta que termine la configuracioacuten Una vez que se hay completado la configuracioacuten de su firewall debe editar su etcshorewallshorewallconf y poner STARTUP_ENABLED=Yes
Importante
Los usuarios del paquete deb deben editar etcdefaultshorewall y poner startup=1
El firewall se arranca usando el comando ldquoshorewall startrdquo y se detiene con el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado para aquellas maacutequinas que tengan una entrada en el archivo etcshorewallroutestopped Un firewall detenido debe ser reiniciado usando el comando ldquoshorewall restartrdquo Si desea eliminar totalmente todo rastro de Shorewall de su configuracioacuten Netfilter use el comando ldquoshorewall clearrdquo
Esta muestra two-interface asume que usted desea habilitar el enrutamiento desdehacia eth1 (la red local) cuando Shorewall estaacute detenido Si su red local no estaacute conectada a eth1 o si desea habilitar el acceso desdehacia otras maacutequinas cambie apropiadamente el archivo etcshorewallroutestopped
Alerta
Si usted estaacute conectado a su firewall desde internet no enviacutee el comando ldquoshorewall stoprdquo a menos que haya agregado una entrada con la direccioacuten IP desde donde se conectoacute al archivo etcshorewallroutestopped Tampoco recomendamos usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarla con el comando ldquoshorewall tryrdquo
Lectura Adicional Recomendada
Se le recomienda altamente la paaacutegina Archivo de Facilidades de Configuracioacuten Comunes -- contiene tips uacutetiles acerca de las facilidades Shorewall que hacen maacutes faacutecil la administracioacuten del firewall Shorewall
Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
Una vez que tiene su arreglo de dos interfaces funcionando el siguiente paso loacutegico es agregar una conexioacuten de red inalaacutembrica El primer paso es agergar la tarjeta de red adicional a su firewall ya sea una tarjeta inalaacutembirca o una tarjeta ethernet que conecte a un punto de acceso inalaacutembirco
Precaucioacuten
Cuando agrega una tarjeta de red eacutesta no seraacute necesariamente detectada como la siguiente interface ethernet superior Por ejemplo si tiene dos interfaces ethernet en su sistema (eth0 and eth1) y agrega una tercera tarjeta que usa el mismo manejador (driver) de alguna de las dos anteriores la tercera no necesariamente seraacute detectada como eth2 mal pudiera ser detectada como eth0 o eth1 Usted puede ya sea vivir con ello o puede intercambiar las tarjetas en los soacutecates hasta que la nueva tarjeta sea detectada como eth2
Su nuevo arreglo de red luciraacute similar a la figura siguiente
La primera cosa notable es que las computadores en su red inalaacutembrica estan en una subred diferente a los de su red cableada en la LAN En el ejemplo de arriba hemos escogido usar la red 101011024 Las computadoras 3 y 4 seriacutean configuradas con la direccioacuten IP del default gateway IP a 101011254
Segundo hemos escogido incluir la red inalaacutembrica como parte de la zona local Ya que Shorewall permite el traacutefico en-la-zona por omisioacuten el traacutefico puede fluir libremente entre la red cableada local y la red inalaacutembrica
Hay soacutelo dos cambios necesarios para nuestra configuracioacuten Shorewall
bull Se necesita agregar una entrada a etcshorewallinterfaces para la interface de red inalaacutembrica Si la interface inalaacutembrica es wlan0 la entrada puede lucir asiacute
ZONE INTERFACE BROADCAST OPTIONSloc wlan0 detect maclist
Como se muestra en la entrada anterior se recomienda usar la opcioacuten maclist para el segmento inalaacutembrico En paralelo agregue las entradas para las computadoras 3 y 4 en etcshorewallmaclist para prevenir que sus vecinos obtengan una conexioacuten gratuita a internet a sus expensas Comience por omitir esta opcioacuten cuando tenga todo funcionando entonces agregue esta opcioacuten y configure su archivo etcshorewallmaclist
bull Usted necesita agregar una entrada al archivo etcshorewallmasq para enmascarar el traacutefico desde la red inalaacutembrica hacia internet Si su interface hacia internet es eth0 y su interface inalaacutembrica es wlan0 la entrada seriacutea asiacute
INTERFACE SUBNET ADDRESSeth0 wlan0
Otra cosa a notar para poner la red de Microsofttrade a funcionar entre las redes inalaacutembrica y cableada necesitaraacute ya sea un servidor WINS o un PDC Yo personalmente uso Samba configurado como servidor WINS corriendo en mi firewall Correr un servidor WINS en el firewall requiere las reglas que se listan en documentacioacuten ShorewallSamba
Guiacutea de Configuracioacuten de Shorewall
Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
Precaucioacuten
Este artiacuteculo aplica a Shorewall 30 en adelante Si estaacute corriendo una versioacuten previa de Shorewall 300 entonces por favor vea la documentacioacuten para dicha liberacioacuten
Introduccioacuten
Esta guiacutea estaacute destinada a los usuarios que desean configurar Shorewall en entornos donde un conjunto de direcciones IP puacuteblicas deben ser manejadas Para quienes desean conocer maacutes acerca de Shorewall en otros entornos revise las Guiacuteas Raacutepidas de Shorewall Debido a las amplias diferentes posibles aplicaciones la Guiacutea le daraacute directrices y apuntaraacute hacia otros recursos si ello es necesario
Precaucioacuten
Shorewall requiere el paquete iprouteiproute2 instalado (en RedHat el paquete se llama iproute) Usted puede saber si el paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando ldquowhichrdquo para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se recomienda que primero lea la guiacutea para que se familiarice con lo que estaacute involucrado y luego vuelva hacia atraacute y comience sobre los cambios de configuracioacuten requeridos Los puntos donde se recomiendan cambios de
configuracioacuten se sentildealan con
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windows usted debe salvarlos como archivos Unix si su editor soporta dicha opcioacuten o debe ejecutar dicho archivo con dos2unix antes de usarlo con Shorewall De forma similar si copia un archivo de configuracioacuten desde su disco duro en Windows a un disco flexible debe ejecutar previamente dos2unix contra la copia antes de usarla con Shorewall
bull Enlace a versioacuten Windows de dos2unix httpwwwsimtelnetpubpd51438html bull Enlace a versioacuten Linux de dos2unix httpwwwmegalomancom7Ehanysoftwarehd2u
Conceptos de Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall para la mayoriacutea de las configuraciones soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea El esqueleto de archivos de configuracioacuten es creado durante el Proceso de Instalacioacuten de Shorewall
Alerta
Nota para los Usuarios Debian
Si instala usando un deb encontraraacute que el directorio etcshorewall estaacute vaciacuteo Esto es intencional Los archivos del esqueleto correspondientes a la liberacioacuten correspondiente pueden encotrarse en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no los modifica
En la medida que introducimos cada archivo sugerimos que revise dicho archivo en su sistema cada archivo contiene instrucciones detalladas de configuracioacuten
Shorewall ve la red donde estaacute corriendo como si estuviera compuesta de un conjunto de zonas En esta guiacutea usaremos las siguientes zonas
fw
El propio sistema firewall
net
La red puacuteblica Internet
loc
La red local privada que usa direcciones IP privadas
dmz
Una Zona Desmilitarizada que aloja servidores de acceso puacuteblico
Las zonas se definen en el archivo etcshorewallzones
Importante
El archivo etcshorewallzones incluiacutedo en la distribucioacuten estaacute vaciacuteo Usted puede crear el conjunto de zonas estandar descritas anteriormente copiando y pegando el siguiente contenido en dicho archivo
ZONE TYPE OPTIONSfw firewallnet ipv4loc ipv4dmz ipv4
Note que Shorewall reconoce al sistema firewall como su propia zona El ejemplo anterior sigue la convencioacuten usual de nombres zona firewall fw El nombre especificado para la zona firewall (fw en el ejemplo anterior) se almacena en la variable shell $FW cuando se procesa el archivo etcshorewallzones Con la excepcioacuten del nombre asignado a la zona firewall Shorewall no asocia ninguacuten significado especial a los nombes de zona Las zonas son lo que USTED hace de ellas Ello significa que no debe esperar que Shorewall haga algo especial porque esta es la zona interna o porque esta es la zona DMZ
Edite el archivo etcshorewallzones y haga los cambios necesarios
La reglas acerca de queacute traacutefico permitir y negar se expresan en teacuterminos de las zonas
bull Usted expresa la poliacutetica por omisioacuten para conexiones desde una a otra zona en el archivo etcshorewallpolicy
bull Usted define excepciones a dichas poliacuteticas en etcshorewallrules
Shorewall se construye sobre el motor de kernel Netfilter Netfilter implementa la funcioacuten de seguimiento de conexiones que permite lo que se denomina como inspeccioacuten por estado (stateful inspection) de paquetes Esta capacidad de manejar los estados permite que las reglas de firewall sean definidas en teacuterminos de conexiones en vez de paquetes Con Shorewall usted
1 Identifica la zona origen (cliente)2 Identifica la zona destino (servidor)3 Si la POLITICA de la zona cliente a la zona servidor es lo que desea para esta pareja clienteservidor no
necesita hacer nada adicional4 Si la POLITICA no es lo que desea entonces debe agregar una regla La regla se expresa en teacuterminos de la
zona del cliente y de la zona del servidor
Soacutelo porque las conexiones de un tipo particular desde la zona A hacia el firewall estaacuten permitidas y que tambieacuten estaacuten permitidas desde el firewall a la zona B NO sigifica que estas conexiones esten permitidas entre la zona A y la zona B (en otras palabras las poliacuteticas y reglas que involucran a la zona firewall no son transitivas) A cambio significa que usted puede tener un proxy corriendo en el firewall que acepta conexiones desde la zona A y luego establece conexiones separadas por siacute mismo desde el firewall hacia la zona B
Para cada solicitud de conexioacuten que entra al firewall la solicitud se chequea primero contra el archivo etcshorewallrules Si ninguna regla del archivo aplica se aplica a la solicitud de conexioacuten la primera poliacutetica en etcshorewallpolicy que corresponda con dicha solicitud despueacutes de que haya pasado por la accioacuten comuacuten apropiada (si existe alguna)
Previo a Shorewall 220 el archivo por omisioacuten etcshorewallpolicy teniacutea las siguientes poliacuteticas
SOURCE ZONE DESTINATION ZONE POLICY LOG LIMITBURST LEVELloc net ACCEPTnet all DROP infoall all REJECT info
Importante
El archivo de poliacuteticas de la versioacuten actual estaacute vaciacuteo Usted puede copiar y pegar las entradas anteriores para crear un punto de partida para luego personalizar sus poliacuteticas
Las poliacuteticas anteriores haraacuten que
1 permitiraacute todas las solicitudes de conexiones desde la red local hacia internet2 descartaraacute (ignoraraacute) todas las solicitudes de conexiones desde internet hacia su firewall o red local y se
registra un mensaje a nivel informativo (info level log vea aquiacute la descripcioacuten de los niveles de registro)3 rechaza todas las solicitudes de conexiones y registra un mensaje a nivel informativo Cuando una solicitud
se rechaza el firewall devuelve un RST (si el protocolo es TCP) o un paquete ICMP de puerto-inalcanzabe para los otros protocolos
En este punto edite su archivo etcshorewallpolicy y haga los cambios que desee
Interfaces de Red
Para el resto de esta guiacutea nos referiremos al siguiente diagrama Si bien puede que no luzca como el de su red puede usarse para ilustrar los aspectos importantes de la configuracioacuten Shorewall
En este diagrama
bull La Zona DMZ consiste de los sistemas DMZ 1 y DMZ 2 Una DMZ se usa para aislar su servidors accesibles desde internet de sus sistemas locales tal que si uno de esos servidores estaacute comprometido auacuten tendraacute el firewall entre el sistema comprometido y sus sistemas en la red local
bull La Zona Local consiste de los sistemas Local 1 Local 2 y Local 3bull Todos los sistemas desde el ISP hacia afuera componen la Zona Internet
La forma maacutes cimple de definir zonas es asociar el nombre de la zona (previamente definida en etcshorewallzones) con una interface de red Esto se hace en el archivo etcshorewallinterfaces El firewall ilustrado arriba tiene tres interfaces de red Donde la conectividad hacia Internet es hecha a traveacutes de un cable Modem o DSL la Interface Externa seraacute un adaptador Ethernet que se ecneuntra conectado al Modem (eg eth0) a menos que conecte usando Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta usando un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces desearaacute establecer CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Local seraacute un adaptador Ethernet (eth0 eth1 o eth2) y conectaraacute a un hub o switch Sus computadores locales estaraacuten conectadas al mismo switch o hub (nota Si tiene un uacutenico sistema local puede conectar directamente el firewall al computador utilizando un cable cruzado)
Su Interface DMZ tambieacuten seraacute un adaptador Ethernet (eth0 eth1 o eth2) y se conectaraacute a un hub o switch Sus computadores DMZ seraacuten conectados al mismo switch o hub (nota Si tiene un uacutenico sistema DMZ puede conectar directamente el firewall al computador usando un cable cruzado)
Precaucioacuten
No conecte la interace interna y externa al mismo hub o switch exceptuando para pruebas Y estaacute corriendo Shorewall 147 o superior Cuando use estas versiones recientes puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en el archivo etcshorewallinterfaces para todas las interfaces conectadas al mismo hubswitch No se recomienda utilizar tal configuracioacuten con un firewall de produccioacuten
Para el resto de esta guiacutea asumiremos que
bull La Interface Externa es eth0bull La Interface Local es eth1bull La Interface DMZ es eth2
La cinfiguracioacuten Shorewall por omisioacuten no define el contenido de ninguna zona Para definir la configuracioacuten de arriba usando el archivo etcshorewallinterfaces dicho archivo contendriacutea
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectdmz eth2 detect
Note que la zona $FW no tiene una entrada en el archvio etcshorewallinterfaces
Edite el archivo etcshorewallinterfaces y defina las interfaces de red de su firewall asociadas con su zona Si tiene una zona disponible a traveacutes de maacutes de una interface de red simplemente incluya una entrada para cada interface y repita el nombre de zona tantas veces como haga falta con su respectiva interface de red
Ejemplo 1 Muacuteltiples Interfaces hacia una Zona
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectloc eth2 detect
Usted puede definir zonas maacutes complicadas usando el archivo etcshorewallhosts pero en la mayoriacutea de los casos ello no es necesario Vea Shorewall_and_Aliased_Interfaceshtml y Multiple_Zoneshtml para algunos ejemplos
Direccionamiento Subredes y Enrutamiento
Normalmente su ISP le asignaraacute un conjunto de direcciones IP Puacuteblicas Usted configuraraacute su interface externa de su firewall para que use una de dichas direcciones permanentemente y entonces tendraacute que decidir como usaraacute el resto de sus direcciones Antes de que contestemos esta pregunta es conveniente primero revisar los fundamentos
Si usted estaacute ampliamente familiarizado con el direccionamiento IP y el enrutamiento puede ir directo a la proacutexima seccioacuten
La siguiente discusioacuten revisa someramente el direccionamiento y el enrutamiento IP Si estaacute interesado en aprender maacutes acerca del tema le recomendaos ampliamente ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0
Direcciones IP
Las direcciones IP versioacuten 4 (IPv4) son nuacutemeros de 32 -bits La notacioacuten wxyz refiere a una direccioacuten donde el byte de orden superior tiene el valor ldquowrdquo el proacuteximo byte tiene el valor ldquoxrdquo etc Si tomamos la direccioacuten 1920214 y la expresamos en hexadecimal obtenemos
C000020E
o viacuteendolo como un entero de 32-bits
C000020E
Subredes
Usted comenzaraacute a escuchar los teacuterminos ldquored Clase Ardquo ldquored Clase B y red Clase C En los primeros diacuteas de IP las redes veniacutean en tres tamantildeos (existiacutea tambieacuten redes Clase D pero era usada de forma diferente)
Clase A - maacutescara de red 255000 size = 2 24Clase B - maacutescara de red 25525500 size = 2 16
Clase C - maacutescara de red 2552552550 size = 256
La clase de una red era determinada uniacutevocamente por el valor del byte superior de su direccioacuten tal que usted pudiera ver la direccioacuten IP e inmediatamente determinara la maacutescara asociada La maacutescara de red es un nuacutemero que cuando se aplica un Y loacutegico con la direccioacuten separa la direccioacuten de red del resto que es la direccioacuten de host Por ejemplo la direccioacuten Clase C 1920214 la direccioacuten de red es el hexadecimal C00002 y el nuacutemero de host es 0E
En la medida que internet crecioacute se hizo claro que tal particionamiento tan grueso de direcciones de 32-bits iva a ser muy limitante (iexclPreviamente a las grandes corporaciones y universidades le fueron asignadas sus propias redes clase A) Despueacutes de unos arranques en falso la teacutecnica de subredes evolucionoacute al sistema actual de redes maacutes pequentildeas la teacutecnica se le refiere como Classless InterDomain Routing (CIDR) Hoy diacutea cualquier sistema que usted probablemente use entenderaacute CIDR y las redes basadas en clases son ya algo del pasado
Una subred es un conjunto contiguo de direcciones IP tal que
1 La cantidad de direcciones en el conjunto es una potencia de 2 y2 La primera direccioacuten en el conjunto es un muacuteltiplo del tamantildeo del conjunto3 La primera direccioacuten en la subred se reserva y se le refiere como la direccioacuten de subred4 La uacutetima direccioacuten en la subred estaacute reservada como la direccioacuten de difusioacuten(broadcast) de la subred
Como puede ver por definicioacuten en cada subred de tamantildeo n hay (n - 2) direcciones utilizables (direcciones que se pueden asignar a maacutequinas) La primera y uacuteltima direccioacuten en la subred son utilizadas como direccioacuten de la subred y direccioacuten de difusioacuten respectivamente En consecuencia las subredes maacutes pequentildeas desperdician maacutes direcciones IP que las redes maacutes grandes
Ya que n es una potencia de dos faacutecilmente podemos calcular el Logaritmo-Base2 (log2) de n Para los tamantildeos maacutes comunes de subred el tamantildeo y su logaritmos base 2 son dados por la siguiente tabla
Tabla 1 Logaritmos Base-2
n log2 n (32 - log2 n)
8 3 29
16 4 28
32 5 27
64 6 26
128 7 25
256 8 24
512 9 23
1024 10 22
2048 11 21
4096 12 20
8192 13 19
16384 14 18
32768 15 17
65536 16 16
Notaraacute que la tabla arriba tambieacuten contiene una columna parar (32 - log2 n) Este nuacutemero es la Variable Length Subnet Mask (VLSM) para una red de tamantildeo n De la tabla arriba podemos derivar la siguiente que es un poco maacutes faacutecil de usar
Tabla 2 VLSM
Subnet Size VLSM Subnet Mask
8 29 255255255248
16 28 255255255240
32 27 255255255224
64 26 255255255192
128 25 255255255128
256 24 2552552550
512 23 2552552540
1024 22 2552552520
2048 21 2552552480
4096 20 2552552400
8192 19 2552552240
16384 18 2552551920
32768 17 2552551280
65536 16 25525500
2 24 8 255000
Note que la VLSM se escribe con barra (ldquordquo) -- a menudo escucharaacute de una subred de tamantildeo 64 referida como una subred ldquobarra 26rdquo y una de tamantildeo 8 referida como de ldquobarra 29rdquo
La maacutescara de subred es simplemente un nuacutemero de 32 bits con los primeros ldquoVLSMrdquo bits puestos a uno y los remanentes bits puestos a cero Por ejemplo para una subred de tamantildeo 64 la maacutescara de subred tiene los primeros 26 bits en uno
11111111111111111111111111000000 = FFFFFFC0 = FFFFFFC0 = 255255255192
La maacutescara de subred tiene la propiedad de que si se hace un Y loacutegico con una direccioacuten en la subred el resultado es la direccioacuten de la subred Igual de importante si hace un Y loacutegico de la maacutescara de subre con una direccioacuten fuera de la subred el resultado NO es la direccioacuten de la subred Como ya veremos esta propiedad de la maacutescara de subred es muy uacutetil para el enrutamiento
Para una subred cuya direccioacuten es abcd y cuyo Variable Length Subnet Mask es v denotamos la subred como ldquoabcdvrdquo usando Notacioacuten CIDR Ejemplo
Tabla 3 Subred
Subred 1010100 - 101010127
Tamantildeo Subred 128
Direccioacuten Subred 1010100
Direccioacuten Difusioacuten 101010127
Notacioacuten CIDR 101010025
Existen dos subredes degeneradas que merecen ser nombradas la subred con un miembro y la subre con 2 32 miembros
Tabla 4 32 y 0
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
Importante
Una vez que ha instalado el paquete dev y antes de intentar configurar Shorewall por favor lea el concejo de Lorenzo Martignoni el Mantenedor de Shorewall Debian
ldquoPara maacutes informacioacuten acerca del uso de Shorewall en sistemas Debian mire en usrsharedocshorewallREADMEDebian provisto por el paquete Debian de shorewallrdquo
La forma maacutes faacutecil de instalar Shorewall en Debian es usar use apt-get
apt-get install shorewall
Para asegurar que estaacute instalando la uacuteltima versioacuten de Shorewall por favor modifique su archivo etcaptsourceslist como se describe aquiacute
Una vez que haya completado la configuracioacuten Shorewall puede habilitar el arranque de Shorewall al arranque del sistema (boot) poniendo startup=1 en etcdefaultshorewall
Notas Generales Acerca de la Actualizacioacuten Shorewall
La mayoriacutea de los problemas asociados con las actualizaciones tienen su origen en dos causas
bull El usuario no leyoacute y siguioacute las consideraciones de migracioacuten en las notas de liberacioacuten (estos se reproducen en Problemas al Actualizar Shorewall)
bull El usuario no manejoacute bien el archivo etcshorewallshorewallconf durante la actualizacioacuten Shorewall estaacute disentildeado para tener un comportamiento por omisioacuten persistente a lo largo de la evolucioacuten del producto Para que esto sea posible el disentildeo asume que usted no remplazaraacute su archivo shorewallconf actual durante las actualizaciones Se recomienda que despueacutes de instalar por primera vez Shorewall modifique etcshorewallshorewallconf tal que prevenga que el manejador de paquetes lo sobrescriba durante subsiguientes actualizaciones (ya que hay que agregar STARTUP_ENABLED tal modificacioacuten asegura que usted debe manualmente cambiar los ajustes de esta opcioacuten) Si se siente realmente impulsado a tener los uacuteltimos comentarios y opciones en su shorewallconf entonces proceda con cuidado Deberiacutea determinar cuaacuteles nuevas opciones han sido agregadas y debe reajustar sus valores (eg OPTION=) de otra forma obtendraacute un comportamiento diferente al que espera
Actualizando con RPM
Si ya tiene el RPM Shorewall instalado y estaacute actualizando a una nueva versioacuten
1 Aseguacuterese de tener el paquete RPM correcto
El paquete estandar RPM de shorewallnet y sus espejos se saben funcionan con SuSe Power PPC Trustix y TurboLinux Hay tambieacuten un paquete RPM provisto por Simon Matter que ha sido ajustado para RedHatFedora y otro paquete provisto por Jack Coates que estaacute personalizado para Mandrake Si intenta usar el paquete equivocado probablemente no funcione
2 Actualice el RPM
rpm -Uvh ltshorewall rpm filegt
Nota
Algunos usuarios SuSE han encontrado un problema donde rpm reporta un conflicto con kernel lt= 22 auacuten cuando estaacute instalado un kernel 24 Si esto sucede simplemente use la opcioacuten --nodeps de rpm
rpm -Uvh --nodeps ltshorewall rpmgt
Nota
A partir de Shorewall 140 Shorewall depende del paquete iproute Desafortunadamente algunas distribuciones llaman a este paquete por otro nombre iproute2 lo que causa que Shorewall falle con el mensaje diagnoacutestico
error failed dependenciesiproute is needed by shorewall-140-1
A esto se le puede dar la vuelta usando la opcioacuten --nodeps de rpm
rpm -Uvh --nodeps ltshorewall rpmgt
3 Vea si hay alguna incompatibilidad entre su configuracioacuten y la nueva versioacuten de Shorewall y corrija si es necesario
shorewall check
4 Reinicie el firewall
shorewall restart
Actualizando con tarball
Si ya tiene instalado Shorewall y estaacute actualizando a una nueva versioacuten usando tarball
1 desempaque el tarball
tar -zxf shorewall-xyztgz
2 cd al directorio shorewall (la versioacuten estaacute codificada en el nombre del directorio como en ldquoshorewall-301rdquo)
3 Tipee
installsh
4 Vea si hay alguna incompatibilidad entre su configuracioacuten y la nueva versioacuten de Shorewall y corrija si es necesario
shorewall check
5 Arranque el firewall tipeando
shorewall start
6 Si el guioacuten isntall no fue capaz de configurar Shorewall para su arranque automaacutetico al arrancar el sistema (boot) vea estas instrucciones
Actualizando con lrp
Lo siguiente fue contribucioacuten de Charles Steinkuehler en la lista de correos Leaf
Es MUY simplesoacutelo ponlo en un nuevo CD y reinicia -) De hecho soacutelo bromeo ligeramenteasiacute es exactamente como actualizo mis firewalls de produccioacuten La facilidad de respaldo parcial que agregue a Dachstein permite que los datos de configuracioacuten sean almacenados separadamente del resto del paquete
Una vez que los datos de configuracioacuten estaacuten separados del resto del paquete es faacutecil actualizar el paquete mientras mantiene su configuracioacuten actual (en mi caso insertando un CD y reiniciando)
Los usuarios que no estaacuten corriendo con muacuteltiples rutas de paquetes y usan respaldos parciales tambieacuten pueden actualizar un paquete soacutelo toma un poco maacutes de trabajo La idea general es usar el respaldo parcial para salvar su configuracioacuten remplazar el paquete y restaurar sus viejos archivos de configuracioacuten Instrucciones paso-a-paso para una forma de hacer esto (asumiendo un sistema convencional de un-floppy LEAF) seriacutea
bull Haga una copia de respaldo de su disco de firewall (NUEVO) Este es el disco al que agregaraacute el paquete actualizado
bull Dele formato a un floppy para usarlo como ubicacioacuten temporal para sus archivos de configuracioacuten (XFER) Este disco deberiacutea tener el mismo formato que el disco del firewall (y simplemente pudiera ser simplemente otra copia de respaldo de firewall actual)
bull Aseguacuterese de tener una copia qeu funcione de su fierwall (VIEJO) en alguacuten lugar seguro que NO usaraacute durante este proceso De esta forma si algo sale mal usted simplemente reinicia con el disco VIEJO para volver a una configuracioacuten que funciona
bull Remueva su disco actual de configuracioacuten de firewall y remplaacutecelo con el disco XFERbull Use el menuacute de respaldo lrcfg para ahcer un respaldo parcial del paquete que desea actualizar estando
seguros acerca de los archivos en el disco XFER A partir del menuacute de respaldo
t e ltentergt p ltentergtb ltpackage1gt ltentergtb ltpackage2gt ltentergt
bull Descargue y copie el paquete que desea actualizar en el disco NUEVObull Reinicie su firewall usando el disco NUEVOen este punto su actualizacioacuten tendraacute su configuracioacuten por
omisioacutenbull Monte el disco XFER (mount -t msdos devfd0u1680 mnt)bull CD al directorio raiacutez (cd )bull Extraiga manualmente los datos de configuracioacuten para cada paquete que actualizoacute
tar -xzvf mntpackage1lrptar -xzvf mntpackage2lrp
bull Desmonte (umount mnt) y retire el disco XFERbull Usando lrcfg haga respaldos FULL de sus paquetes actualizadosbull Reinicie verificando que el firewall funciona como se espera Algunos archivos de configuracioacuten puede que
necesiten ser entonados para que funcionen apropiadamente con los binarios actualizados del paquete
Importante
El nuevo archivo paquete ltpaquetegtlocal puede usar para entonar cuaacuteles archivos estaacuten incluidos (y excluidos) del respaldo parcial (vea el Dachstein-CD README para maacutes detalles) Si este archivo no existe los guiones de respaldo asumiraacuten que cualquier cosa del archivo ltpackagegtlist que reside en etc o varliblrpkg es parte de los datos de configuracioacuten y se usa para crear el respaldo parcial Si Shorewall pone algo en etc que no sea un archivo de configuracioacuten modificado por el usuario deberiacutea crearse un archivo apropiado shorwalllocal antes de hacer el respaldo parcial [Nota del Editor Shorewall coloca soacutelo archivos modificables por el usuario en etc]
Nota
Es obviamente posible hacer lo anterior en-sitio sin usar muacuteltiples discos e incluso sin hacer respaldos parciales (ie copiar archivos de configuracioacuten actuales a tmp manualmente extraer el nuevo paquete sobre el firewall que estaacute corriendo luego copiar o fusionar los datos desde tmp yo respaldoo similar) pero para cualquiera que sea capaz de toda esa gimnasia en la liacutenea de comandos es probable que lo pueda hacer sin ninguacuten tipo de instrucciones detalladas -)
Para maacutes informacioacuten de otras herramientas de actualizacioacuten LEAFBering mire en este artiacuteculo de Alex Rhomberg
Configurando Shorewall
Usted necesitaraacute editar algunos o todos los archivos de configuracioacuten para lograr la configuracioacuten deseada En la mayoriacutea de los casos las Guiacuteas Raacutepidas de Shorewall contienen toda la informacioacuten que usted necesita para comenzar
DesinstalarVolverAtraacutes
Vea ldquoVolverAtraacutes y Desinstalarrdquo
Firewall Baacutesico Dos-Interfaces
Introduccioacuten
El configurar un sistema Linux como firewall para una red pequentildea es relativamente una tarea simple si entiende los principios baacutesicos y sigue la documentacioacuten
Esta guiacutea no intenta profundizar en todas las facilidades de Shorewall A cambio se enfoca en lo que se requiere para configurar Shorewall en su configuracioacuten maacutes comuacuten
bull Sistema Linux usado como firewallrouter para una red local pequentildeabull Un uacutenica direccioacuten IP puacuteblica Si tiene maacutes de una direccioacuten IP puacuteblica esta no es la guiacutea que desea -- vea
la Guiacutea de Configuracioacuten de Shorewall bull Conexioacuten Internet por cable modem DSL ISDN Frame Relay discada
Aquiacute se muestra un esquemaacutetico de una instalacioacuten tiacutepica
Figura 1 Configuracioacuten comuacuten de firewall con dos interfaces
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windowstrade usted salvarlos como archivos Unixtrade si su editor soporta esta opcioacuten o debe pasarlo por el programa dos2unix antes de intentar de usarlos De forma similar si copia un archivo de configuracioacuten del disco duro en Windowstrade a un disco flexible debe pasarlos por dos2unix antes de usarlos con Shorewall
bull Versioacuten Windows trade de dos2unix bull Versioacuten Linux de dos2unix
Requerimientos de Sistema
Shorewall requiere que tenga instalado el paquete iprouteiproute2 (en RedHattrade el paquete se llama iproute) Usted puede saber si este paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando which para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se le recomienda primero leer a lo largo de la guiacutea para familiarizarse con los toacutepicos involucrados para luego volver sobre ella y hacer los cambios de configuracioacuten
Convenciones
Los puntos en los cuales se recomiendan cambios de configuracioacuten estaacuten sentildealadas
Las notas de configuracioacuten que son uacutenicas de LEAFBering estaacute marcadas con
PPTPADSL
Si tiene un Modem ADSL y usa PPTP para comunicarse con un servidor en ese modem usted debe hacer los cambios que se recomiendan aquiacute en adicioacuten a los que se explican abajo ADSL con PPTP se encuentra frecuentemente en Europa y notable Austria
Conceptos Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall -- para configuraciones simples encontraraacute que soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea
Alerta
Nota para los Usuarios Debian
Si instala usando deb encontraraacute que su directorio etcshorewall estaacute vaciacuteo Esto es intencional El esqueleto de archivos de configuracioacuten se pueden encontrar en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no planea modificarlos
Importante
Despueacutes que tiene instalado Shorewall localice las muestras two-interfaces
1 Si instaloacute usando RPM las muestras estaraacuten en el subdirectorio Samplestwo-interfaces del directorio de documentacioacuten de Shorewall Si no sabe donde estaacute el directorio de documentacioacuten Shorewall puede encontrarlo usando el siguiente comando
~ rpm -ql shorewall | fgrep two-interfacesusrsharedocpackagesshorewallSamplestwo-interfacesusrsharedocpackagesshorewallSamplestwo-interfacesinterfacesusrsharedocpackagesshorewallSamplestwo-interfacesmasqusrsharedocpackagesshorewallSamplestwo-interfacespolicyusrsharedocpackagesshorewallSamplestwo-interfacesroutestoppedusrsharedocpackagesshorewallSamplestwo-interfacesrulesusrsharedocpackagesshorewallSamplestwo-interfaceszones~
2 Si instaloacute usando el tarball las muestras estaacuten en el directorio Samplestwo-interfaces en el tarball3 Si instaloacute usando deb las muestras estaacuten en usrsharedocshorewallexamplestwo-interfaces
En la medida que se explica cada archivo le sugerimos que vea el archivo en cuestioacuten en su sistema -- cada archivo contiene instrucciones detallads de configuracioacuten y entradas por omisioacuten
Shorewall ve la red sobre la cual trabaja como si estuviera compuesta de un conjunto de zonas En la configuracioacuten de muestra two-interface se usan los siguientes nombres de zonas
ZONE TYPE OPTIONS IN OUT OPTIONS OPTIONSfw firewallnet ipv4loc ipv4
Las zonas se definen en el archivo etcshorewallzones
Note que Shorewall reconoce el sistema firewall como su propia zona - cuando se procesa el archivo etcshorewallzones el nombre de la zona firewall se almacena en la variable shell $FW que puede usarse para referirse a la zona del firewall a lo largo de la configuracioacuten de Shorewall
Las reglas acerca del traacutefico a permitir o rechazar se expresan en teacuterminos de zonas
bull Usted expresa su poliacutetica por omisioacuten para las conexiones desde una zona a otra en el archivo etcshorewallpolicy
bull Usted define excepciones para dichas poliacuteticas por omisioacuten en el archivo etcshorewallrules
Para cada solicitud de conexioacuten que ingresa al firewall la solicitud se verifica primero contra el archivo etcshorewllrules Si no aplica ninguna regla para la solicitud de conexioacuten entonces la primera poliacutetica en etcshorewallpolicy que coincida se aplica Si hay una accioacuten comuacuten definida para la poliacutetica en etcshorewallactions o usrshareshorewallactionsstd entonces esa accioacuten se ejecuta antes de la poliacutetica
El archivo etcshorewallpolicy que se incluye con la muestra two-interface tiene las siguientes poliacuteticas
SOURCE DEST POLICY LOG LEVEL LIMITBURSTloc net ACCEPTnet all DROP infoall all REJECT info
En la muestra two-interface la liacutenea abajo estaacute incluida pero estaacute comentada Si desea que su sistema firewall tenga acceso completo a los servidores en internet quite el comentario a esa liacutenea
SOURCE DEST POLICY LOG LEVEL LIMITBURST$FW net ACCEPT
Las poliacuteticas anteriores
bull Permitiraacuten todas las solicitudes de conexiones desde la red local hacia internetbull Desacartaacuten (ignoraraacuten) todas las solicitudes de conexioacuten desde internet hacia su firewall o red localbull Opcionalmente aceptar todas las solicitudes de conexiones desde el firewall hacia internet (si levantoacute el
comentario de la poliacutetica adicional)bull Rechazaraacuten todas las otras solicitudes de conexioacuten
Es importante notar que las poliacuteticas Shorewal (y las reglas) refieren a conexiones y no flujo de paquetes Con las poliacuteticas definidas en el archivo etcshorewallpolicy como se muestra arriba las conexiones se permiten desde la zona loc a la zona net incluso aunque no esten permitidas las conexiones desde la zona loc al propio firewall
En este punto edite su etcshorewallpolicy y haga los cambios que considere
Interfaces de Red
El firewall tiene dos interfaces de red Donde si bien la conectividad es a traveacutes de cable modem o Modem DSL la Interface Externa seraacute el adaptador ethernet que se encuentre conectado a dicho Modem (eg eth0) a menos que conecte viacutea Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta por un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces querraacute poner CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Interna seraacute un adaptador ethernet (eth1 o eth0) y conectaraacute a un hub o switch Sus computadores se conectaraacuten al mismo hubswitch (nota Si tiene un uacutenico sistema interno puede conectarlo directamente al firewall usando un cable cruzado)
Alerta
No conecte la interface interna y externa al mismo hub o switch exceptuado para pruebas Usted puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en etcshorewallinterfaces para todas las interfaces comunes al mismo hubswitch Usando tal configuracioacuten con un firewall en produccioacuten no es para nada recomendable
La muestra two-interface de Shorewall asume que la interface externa es eth0 y que la interface interna es eth1 Si su configuracioacuten difiere tendraacute que modificar la muesta acordemente en el archivo etcshorewallinterfaces Mientra esteacute ahiacute puede revisar la lista de opciones que le son especiacuteficas para las interfaces Algunas pistas
Tip
Si su interface externa es ppp0 o ippp0 puede remplazar en la segunda columna detect con ldquo-rdquo (sin las comillas)
Tip
Si su interface externa es ppp0 o ippp0 o si tiene una direccioacuten IP estaacutetica puede eliminar dhcp de la lista de opciones
Tip
Si su interface interna es un puente (bridge) cree If your internal interface is a bridge create using the brctl utility then you must add the routeback option to the option list
Direcciones IP
Antes de seguir avanzando debemos decir unas cuantas palabras acerca de las direcciones Internet Protocol (IP) Normalmente su ISP le asignaraacute una uacutenica direccioacuten IP Puacuteblica Esta direccioacuten puede ser asignada viacutea Dynamic Host Configuration Protocol (DHCP) o como parte del establecimiento de su conexioacuten cuando disca (modem estandar) o establece su conexioacuten PPP En raras ocasiones su ISP le asignaraacute una direccioacuten IP estaacutetica esto significa que usted configuraraacute la interface exerna de su firewall para usar permanentemente esa direccioacuten Sin embargo su direccioacuten IP asignada seraacute compartida por todos sus sistemas cuando accedan a Internet Usted tendraacute que asignar sus propias direcciones en su red interna (la Interface Interna en su firewall maacutes las otras computadores) El RFC 1918 reserva varios rangos de direcciones Privadas IP para ese propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Antes de arrancar Shoreall usted debe ver la direccioacuten IP de su interface externa y si es una dentro de los rangos descritos arriba deberiacutea quitar la opcioacuten norfc1918 de la entrada que corresponde a su interface externa en etcshorewallinterfaces
Usted querraacute asignar sus direcciones desde la misma subred Para nuestros propoacutesitos podemos considerar una subred que consista de un rango de direcciones xyz0 - xyz255 Tal subred tendraacute una maacutescara de red de 2552552550 La direccioacuten xyz0 se reserva como la Direccioacuten de Subred y xyz255 se reserva como la Direccioacuten de Difusioacuten de la Subred (Boradcast) En Shorewall una subred se describe usando la notacioacuten Classless InterDomain Routing (CIDR) que consiste de direcciones de subred seguida de 24 El ldquo24rdquo se refiere a la cantidad de 1 consecutivos a la cabeza de la maacutescara de red
Rango 1010100 - 101010255
Direccioacuten de Subred 1010100
Direccioacuten de Difusioacuten 101010255
Notacioacuten CIDR 101010024
Es convencioacuten asignarle la primera direccioacuten utilizable en la subred a la interface interna (1010101 en el ejemplo anterior) o la uacuteltima (101010254)
Uno de los propoacutesitos de hacer subredes es permitir a todas las computadoras en la subred entender queacute otras computadoras pueden comunicarse con ellas directamente Para comunicarse con sistemas fuera de la subre los sistemas deben enviar los paquetes a su detino final a traveacutes de un gateway (enrutador)
Sus computadoras locales (computer 1 y computer 2 en el diagrama arriba) deben ser configuradas con el default gateway a la direccioacuten IP de la interface interna del firewall
La discusioacuten a continuacioacuten repasa por encima los temas de subredes y enrutamiento Si estaacute interesado en aprender maacutes acerca del direccionamiento y el enrutamiento IP si le recomienda altamente el libro ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0 (enlace)
El resto de esta guiacutea asume que tiene su red dispuesta de esta forma
El default gateway para las computdores 1 y 2 seriacutea 101010254
Alerta
Su ISP puede que le asigne una direccioacuten RFC 1918 para su interface externa Si dicha direccioacuten estaacute en la subred 101010024 entonces tendraacute que seleccionar una subred DIFERENTE RFC 1918 para su red local
Enmascaramiento IP (SNAT)
Las direcciones reservadas por el RFC 1918 son a veces referidas como no-ruteable debido a que los enrutadores en el corazoacuten de Internet no se renviacutean los paquetes IP cuando tienen como destino una direccioacuten RFC 1918 Cuando uno de su sistemas locales (digamos computer 1) enviacutea una solicitud de conexioacuten a una maacutequina en Internet el firewall debe hacer Network Address Translation (NAT Traduccioacuten de Direccioacuten de Red) El firewall rescribe la direccioacuten de origen en el paquete para que sea la direccioacuten de la interface externa del firewall en otras palabras el
firewall hace parecer que la solicitud de conexioacuten fueacute originada en el propio firewall Esto es necesario hacerlo para la maaacutequina destino sea capaz de enrutar la respuesta de vuelta hasta el firewall (recuerde que los paquetes cuyos destinos es una direccioacuten RFC 1918 no son enrutados a traveacutes de internet para que la respuesta vuelva su origen en computer 1) Cuando el firewall recibe un paquete de respuesta rescribe la direccioacuten de destino de vuelta a 1010101 y enviacutea el paquete a computer 1
En los sistemas Linux el proceso anterior es conocido como Enmascaramiento IP pero tambieacuten veraacute el uso del teacutermino Source Network Address Translation (SNAT) Shorewall sigue la convencioacuten que usa Netfilter
bull Enmascaramiento (Masquerade) describe el caso donde se permite al sistema firewall detectar automaacuteticamente la direccioacuten de la interface externa
bull SNAT se refiere al caso donde expliacutecitamente especifica la direccioacuten origen que desea usar en los paquetes salientes
En Shorewall tanto Enmascaramiento y SNAT se configuran con entradas en el archivo etcshorewallmasq Normalmente usaraacute Enmascaramiento si su direccioacuten IP en la interface externa es dinaacutemica y SNAT en el caso de direccioacuten IP estaacutetica
Si la interface externa de su firewall es eth0 no se necesita modificar el archivo provisto con la muestra De otra forma edite etcshorewallmasq y cambie la primera columna para que refleje el nombre de su interface externa y la segunda columna el nombre de su interface interna
Si su direccioacuten IP externa es estaacutetica puede enterarla en la tercrea columna en etcshorewallmasq si desea si bien su firewall funcionaraacute bien si no lo hace Enterar su direccioacuten IP estaacutetica en la tercera columna hace que procesar los paquetes salientes sea un poco maacutes eficiente
Si estaacute usando el paquete Debian por favor revise su archivo shorewallconf para asegurarse que lo siguiente esteacute escrito correctamente si no es asiacute caacutembielo apropiadamente
bull IP_FORWARDING=On
Desviacuteo de Puerto (DNAT)
Una de sus metas puede ser correr uno o mas servidores en sus sistemas locales Ya que dichas computadoras tienen direcciones RFC-1918 no es posible a los clientes en internet conectar directamente con ellas En cambio es necesario para dichos clientes dirigir sus solicitudes de conexioacuten hacia el firewall quien rescribe la direccioacuten destino a la direccioacuten de su servidor y enviacutea el paquete al servidor Cuando su servidor responde el firewall automaacuteticamente realiza SNAT para rescribir la direccioacuten origen en la respuesta
El proceso anterior es llamado Desviacuteo de Puerto o Port Forwarding o Destination Network Address Translation (DNAT) Usted puede configurar el desviacuteo de puerto usando las reglas DNAT en el archivo etcshorewallrules
La forma general de una regla de desviacuteo de puerto simple en etcshorewallrules es
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net locltserver local ip addressgt[ltserver portgt] ltprotocolgt ltportgt
Shorewall incorpora macros para muchas de las aplicaciones populares Revise en usrshareshorewallmacro para identificar los macros disponibles en su versioacuten Los macros simplemente crean reglas DNAT suministrando el protocolo y puerto(s) como se muestra en los siguientes ejemplos
Ejemplo 1 Servidor Web
Usted estaacute corriendo un Servidor Web en computer 2 y desea desviar el puerto entrante TCP 80 a este sistema
ACTION SOURCE DEST PROTO DEST PORT(S)WebDNAT net loc1010102
Ejemplo 2 Servidor FTP
Usted estaacute corriendo un Servidor FTP en computer 1 tal que desea entonces desviar el puerto entrante TCP 21 a ese sistema
ACTION SOURCE DEST PROTO DEST PORT(S)FTPDNAT net loc1010101
Para FTP necesitaraacute adicionalmente el motor de seguimiento de conexiones y el soporte NAT en su kernel Para los kernel provistos por el vendedor esto significa que los moacutedulos ip_conntrack_ftp y ip_nat_ftp deben ser cargados Shorewall cargaraacute automaacuteticamente dichos moacutedulos si estaacuten disponibles y localizados en el lugar estandar bajo libmodulesltkernel versiongtkernelnetipv4netfilter
Un par de puntos importantes a mantener en mente son
bull Usted debe probar la regla anterior desde un cliente externe a su red local (ie no pruebe desde un explorador en los computadores 1 o 2 o en el firewall) Si desea ser capaz de acceder a su servidor web yo ftp desde adentro de su fireall usando la direccioacuten IP de su interface externa vea Shorewall FAQ 2
bull Muchos ISPs bloquean las solicitudes entrantes al puerto 80 Si tiene problemas conectaacutendose a su servidor intente seguir la siguiente regla y conectar al puerto 5000
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net loc101010280 tcp 5000
En este punto modifique etcshorewallrules para agregar cualquier regla DNAT que se requiera
Importante
Cuando pruebe las reglas DNAT como las anteriores debe realizar las pruebas desde un cliente AFUERA de su fiewall (en la zona net ) Usted no puede probar estas reglas desde la parte interior del firewall
Para tips de Resolucioacuten de Problemas con DNAT vea FAQs 1a y 1b
Domain Name Server (DNS)
Normalmente cuando usted conecta con su ISP y como parte del proceso de obtener una direccioacuten IP el resolutor Domain Name Service (DNS) del firewall seraacute automaacuteticamente configurado (eg el archivo etcresolvconf seraacute rescrito) Alternativamente su ISP puede darle la direccioacuten IP de un par de servidores de nombre DNS para que manualmente los configure como servidores de nombre primario y secundario respectivamente Sin importar la forma en coacutemo se configuran los servidores DNS en su firewall es su responsabilidad configurar el resolutor en sus sistemas internos Puede escoger uno de dos caminos
bull Configura sus sistemas internos para que usen los servidores de nombre de su ISP Si su ISP le ha suministrado las direcciones de sus servidores DNS o de otros disponibles en su sitio web usted puede configurar sus sistemas internos para que usen dichas direcciones Si dicha informacioacuten no estaacute disponible vea en el archivo etcresolvconf de su sistema firewall -- los servidores de nombre son declarados con los registros nameserver en este archivo
bull Puede configurar un Cache Servidor de Nombres en su firewall Red Hattrade tiene un RPM para el cache servidor de nombres (el RPM tambieacuten requier el RPM bind) y para los usuarios Bering hay un dnscachelrp Si toma este camino usted configuraraacute sus sistemas internos para que usen el mismo firewall como su servidor primario (o uacutenico) de nombres Usariacutea la direccioacuten IP interna de su firewall (101010254 en el ejemplo anterior) como direccioacuten del servidor de nombres Para permitir a los sistemas locales hablar con el cache servidor de nombre deberaacute abrir el puerto 53 (ambos UDP y TCP) desde la red local hacia el firewall esto lo hace agregar las siguientes reglas en etcshorewallrules
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT loc $FW
Otras Conexiones
La muestra two-interface incluye las siguientes reglas
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT $FW net
Esta regla permite el acceso DNS desde su firewall y puede quitarse si ha quitado el comentario en la liacutenea de etcshorewallpolicy que permite todas las conexiones desde el firewall hacia internet
En la regla que se muestra arriba ldquoDNSACCEPTrdquo es un ejemplo de una invocacioacuten macro Shorewall incluye una cantidad de macros (vea usrshareshorewallmacro) y usted puede agregar los suyos
Usted no tiene que usar los macros cuando codifique las reglas en etcshorewallrules Shorewall arrancaraacute ligeramente maacutes raacutepido si codifica sus reglas directamente en vez de usar macros La regla anterior tambieacuten pudo haber sido codificada asiacute
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW net udp 53ACCEPT $FW net tcp 53
En los casos donde Shorewall no incluya un macro que satisfaga sus necesidades puede ya sea definir un nuevo macro o simplemente codificar las reglas apropiadas directamente
La muestra tambieacuten incluye
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT loc $FW
Esta regla permite correr el servidor SSH en su firewall y conectarse a eacutel desde los sistemas locales
Si desea habilitar otras conexiones desde su firewall a otros sistemas el formato general usando macros es
ACTION SOURCE DEST PROTO DEST PORT(S)ltmacrogtACCEPT $FW ltdestination zonegt
El formato general cuando no se usan macros predefinidos es
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW ltdestination zonegt ltprotocolgt ltportgt
Ejemplo 3 Servidor Web en el Firewall
Usted desea correr un servidor Web en su sistema firewall
ACTION SOURCE DEST PROTO DEST PORT(S)WebACCEPT net $FWWebACCEPT loc $FW
Estas dos reglas por supuesto seriacutean un agregado a las reglas listadas arriba bajo ldquoPuede configurar un Cache Servidor de Nombres en su firewall rdquo
Si no sabe queacute puerto y protcolo usa una aplicacioacuten particular mire aquiacute
Importante
No recomendados habilitar telnet desdehacia internet porque usa texto en claro para su comunicacioacuten (incluso para el login) Si desea acceso shell para su firewall desde Internet use SSH
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT net $FW
Los usuarios Bering querraacuten agregar las siguientes dos reglas para ser compatibles con la configuracioacuten Shorewall de Jacques
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT loc $FW udp 53 Allow DNS Cache to workACCEPT loc $FW tcp 80 Allow Weblet to work
Ahora edite su archivo etcshorewallrules para agregar o eliminar otras conexiones como se necesario
Algunos Concejos a Mantener en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque enviacutee solicitudes de conexioacuten a la direccioacuten IP de la interface externa de su firewall no significa que la solicitud seraacute asociada con la interface externa o con la zona ldquonetrdquo Cualquier traacutefico que se genere desde la red local seraacute asociado con su interface local y seraacute tratado como traacutefico loc-gtfw
bull Las direcciones IP son propiedades de los sistemas no de las interfaces Es un error pensar que su firewall sea capaz de renviar paquetes soacutelo porque puede hacerle ping a la direccioacuten IP de todas las interfaces IP del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping exitoso es que el enlace entre el sistema local y el firewall funciona bien y que probablemente tenga bien configurado el default gateway del sistema local
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zonas loc poniendo una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO necesariamente siguen automaacuteticamente el camino reverso al tomado por el paquete original de solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso en su camino Este tema usualmente salta a la palestra cuando se instala un firewall Shorewallall en paralelo a un gateway existente y se intenta usar DNAT a traveacutes del Shorewall sin cambiar el default gateway en el sistema que recibe la solicitud renviada Las solicitudes
entraraacuten por el firewall Shorewall donde la direccioacuten IP destino es rescrita pero la respuesta sale sin modificacioacuten por medio del gateway antiguo
bull Shorewall no tiene nocioacuten de adentro o afuera por siacute mismo Estos conceptos se incorporan en el coacutemo se configura Shorewall
Arrancando y Deteniendo Su Firewall
El procedimiento de instalacioacuten configura su sistema para arrancar Shorewall al arrancar (boot) el sistema pero el inicio de Shorewall estaacute deshabilitado por omisioacuten en su configuracioacuten asiacute que no intente arrancar su Shorewall hasta que termine la configuracioacuten Una vez que se hay completado la configuracioacuten de su firewall debe editar su etcshorewallshorewallconf y poner STARTUP_ENABLED=Yes
Importante
Los usuarios del paquete deb deben editar etcdefaultshorewall y poner startup=1
El firewall se arranca usando el comando ldquoshorewall startrdquo y se detiene con el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado para aquellas maacutequinas que tengan una entrada en el archivo etcshorewallroutestopped Un firewall detenido debe ser reiniciado usando el comando ldquoshorewall restartrdquo Si desea eliminar totalmente todo rastro de Shorewall de su configuracioacuten Netfilter use el comando ldquoshorewall clearrdquo
Esta muestra two-interface asume que usted desea habilitar el enrutamiento desdehacia eth1 (la red local) cuando Shorewall estaacute detenido Si su red local no estaacute conectada a eth1 o si desea habilitar el acceso desdehacia otras maacutequinas cambie apropiadamente el archivo etcshorewallroutestopped
Alerta
Si usted estaacute conectado a su firewall desde internet no enviacutee el comando ldquoshorewall stoprdquo a menos que haya agregado una entrada con la direccioacuten IP desde donde se conectoacute al archivo etcshorewallroutestopped Tampoco recomendamos usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarla con el comando ldquoshorewall tryrdquo
Lectura Adicional Recomendada
Se le recomienda altamente la paaacutegina Archivo de Facilidades de Configuracioacuten Comunes -- contiene tips uacutetiles acerca de las facilidades Shorewall que hacen maacutes faacutecil la administracioacuten del firewall Shorewall
Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
Una vez que tiene su arreglo de dos interfaces funcionando el siguiente paso loacutegico es agregar una conexioacuten de red inalaacutembrica El primer paso es agergar la tarjeta de red adicional a su firewall ya sea una tarjeta inalaacutembirca o una tarjeta ethernet que conecte a un punto de acceso inalaacutembirco
Precaucioacuten
Cuando agrega una tarjeta de red eacutesta no seraacute necesariamente detectada como la siguiente interface ethernet superior Por ejemplo si tiene dos interfaces ethernet en su sistema (eth0 and eth1) y agrega una tercera tarjeta que usa el mismo manejador (driver) de alguna de las dos anteriores la tercera no necesariamente seraacute detectada como eth2 mal pudiera ser detectada como eth0 o eth1 Usted puede ya sea vivir con ello o puede intercambiar las tarjetas en los soacutecates hasta que la nueva tarjeta sea detectada como eth2
Su nuevo arreglo de red luciraacute similar a la figura siguiente
La primera cosa notable es que las computadores en su red inalaacutembrica estan en una subred diferente a los de su red cableada en la LAN En el ejemplo de arriba hemos escogido usar la red 101011024 Las computadoras 3 y 4 seriacutean configuradas con la direccioacuten IP del default gateway IP a 101011254
Segundo hemos escogido incluir la red inalaacutembrica como parte de la zona local Ya que Shorewall permite el traacutefico en-la-zona por omisioacuten el traacutefico puede fluir libremente entre la red cableada local y la red inalaacutembrica
Hay soacutelo dos cambios necesarios para nuestra configuracioacuten Shorewall
bull Se necesita agregar una entrada a etcshorewallinterfaces para la interface de red inalaacutembrica Si la interface inalaacutembrica es wlan0 la entrada puede lucir asiacute
ZONE INTERFACE BROADCAST OPTIONSloc wlan0 detect maclist
Como se muestra en la entrada anterior se recomienda usar la opcioacuten maclist para el segmento inalaacutembrico En paralelo agregue las entradas para las computadoras 3 y 4 en etcshorewallmaclist para prevenir que sus vecinos obtengan una conexioacuten gratuita a internet a sus expensas Comience por omitir esta opcioacuten cuando tenga todo funcionando entonces agregue esta opcioacuten y configure su archivo etcshorewallmaclist
bull Usted necesita agregar una entrada al archivo etcshorewallmasq para enmascarar el traacutefico desde la red inalaacutembrica hacia internet Si su interface hacia internet es eth0 y su interface inalaacutembrica es wlan0 la entrada seriacutea asiacute
INTERFACE SUBNET ADDRESSeth0 wlan0
Otra cosa a notar para poner la red de Microsofttrade a funcionar entre las redes inalaacutembrica y cableada necesitaraacute ya sea un servidor WINS o un PDC Yo personalmente uso Samba configurado como servidor WINS corriendo en mi firewall Correr un servidor WINS en el firewall requiere las reglas que se listan en documentacioacuten ShorewallSamba
Guiacutea de Configuracioacuten de Shorewall
Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
Precaucioacuten
Este artiacuteculo aplica a Shorewall 30 en adelante Si estaacute corriendo una versioacuten previa de Shorewall 300 entonces por favor vea la documentacioacuten para dicha liberacioacuten
Introduccioacuten
Esta guiacutea estaacute destinada a los usuarios que desean configurar Shorewall en entornos donde un conjunto de direcciones IP puacuteblicas deben ser manejadas Para quienes desean conocer maacutes acerca de Shorewall en otros entornos revise las Guiacuteas Raacutepidas de Shorewall Debido a las amplias diferentes posibles aplicaciones la Guiacutea le daraacute directrices y apuntaraacute hacia otros recursos si ello es necesario
Precaucioacuten
Shorewall requiere el paquete iprouteiproute2 instalado (en RedHat el paquete se llama iproute) Usted puede saber si el paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando ldquowhichrdquo para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se recomienda que primero lea la guiacutea para que se familiarice con lo que estaacute involucrado y luego vuelva hacia atraacute y comience sobre los cambios de configuracioacuten requeridos Los puntos donde se recomiendan cambios de
configuracioacuten se sentildealan con
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windows usted debe salvarlos como archivos Unix si su editor soporta dicha opcioacuten o debe ejecutar dicho archivo con dos2unix antes de usarlo con Shorewall De forma similar si copia un archivo de configuracioacuten desde su disco duro en Windows a un disco flexible debe ejecutar previamente dos2unix contra la copia antes de usarla con Shorewall
bull Enlace a versioacuten Windows de dos2unix httpwwwsimtelnetpubpd51438html bull Enlace a versioacuten Linux de dos2unix httpwwwmegalomancom7Ehanysoftwarehd2u
Conceptos de Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall para la mayoriacutea de las configuraciones soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea El esqueleto de archivos de configuracioacuten es creado durante el Proceso de Instalacioacuten de Shorewall
Alerta
Nota para los Usuarios Debian
Si instala usando un deb encontraraacute que el directorio etcshorewall estaacute vaciacuteo Esto es intencional Los archivos del esqueleto correspondientes a la liberacioacuten correspondiente pueden encotrarse en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no los modifica
En la medida que introducimos cada archivo sugerimos que revise dicho archivo en su sistema cada archivo contiene instrucciones detalladas de configuracioacuten
Shorewall ve la red donde estaacute corriendo como si estuviera compuesta de un conjunto de zonas En esta guiacutea usaremos las siguientes zonas
fw
El propio sistema firewall
net
La red puacuteblica Internet
loc
La red local privada que usa direcciones IP privadas
dmz
Una Zona Desmilitarizada que aloja servidores de acceso puacuteblico
Las zonas se definen en el archivo etcshorewallzones
Importante
El archivo etcshorewallzones incluiacutedo en la distribucioacuten estaacute vaciacuteo Usted puede crear el conjunto de zonas estandar descritas anteriormente copiando y pegando el siguiente contenido en dicho archivo
ZONE TYPE OPTIONSfw firewallnet ipv4loc ipv4dmz ipv4
Note que Shorewall reconoce al sistema firewall como su propia zona El ejemplo anterior sigue la convencioacuten usual de nombres zona firewall fw El nombre especificado para la zona firewall (fw en el ejemplo anterior) se almacena en la variable shell $FW cuando se procesa el archivo etcshorewallzones Con la excepcioacuten del nombre asignado a la zona firewall Shorewall no asocia ninguacuten significado especial a los nombes de zona Las zonas son lo que USTED hace de ellas Ello significa que no debe esperar que Shorewall haga algo especial porque esta es la zona interna o porque esta es la zona DMZ
Edite el archivo etcshorewallzones y haga los cambios necesarios
La reglas acerca de queacute traacutefico permitir y negar se expresan en teacuterminos de las zonas
bull Usted expresa la poliacutetica por omisioacuten para conexiones desde una a otra zona en el archivo etcshorewallpolicy
bull Usted define excepciones a dichas poliacuteticas en etcshorewallrules
Shorewall se construye sobre el motor de kernel Netfilter Netfilter implementa la funcioacuten de seguimiento de conexiones que permite lo que se denomina como inspeccioacuten por estado (stateful inspection) de paquetes Esta capacidad de manejar los estados permite que las reglas de firewall sean definidas en teacuterminos de conexiones en vez de paquetes Con Shorewall usted
1 Identifica la zona origen (cliente)2 Identifica la zona destino (servidor)3 Si la POLITICA de la zona cliente a la zona servidor es lo que desea para esta pareja clienteservidor no
necesita hacer nada adicional4 Si la POLITICA no es lo que desea entonces debe agregar una regla La regla se expresa en teacuterminos de la
zona del cliente y de la zona del servidor
Soacutelo porque las conexiones de un tipo particular desde la zona A hacia el firewall estaacuten permitidas y que tambieacuten estaacuten permitidas desde el firewall a la zona B NO sigifica que estas conexiones esten permitidas entre la zona A y la zona B (en otras palabras las poliacuteticas y reglas que involucran a la zona firewall no son transitivas) A cambio significa que usted puede tener un proxy corriendo en el firewall que acepta conexiones desde la zona A y luego establece conexiones separadas por siacute mismo desde el firewall hacia la zona B
Para cada solicitud de conexioacuten que entra al firewall la solicitud se chequea primero contra el archivo etcshorewallrules Si ninguna regla del archivo aplica se aplica a la solicitud de conexioacuten la primera poliacutetica en etcshorewallpolicy que corresponda con dicha solicitud despueacutes de que haya pasado por la accioacuten comuacuten apropiada (si existe alguna)
Previo a Shorewall 220 el archivo por omisioacuten etcshorewallpolicy teniacutea las siguientes poliacuteticas
SOURCE ZONE DESTINATION ZONE POLICY LOG LIMITBURST LEVELloc net ACCEPTnet all DROP infoall all REJECT info
Importante
El archivo de poliacuteticas de la versioacuten actual estaacute vaciacuteo Usted puede copiar y pegar las entradas anteriores para crear un punto de partida para luego personalizar sus poliacuteticas
Las poliacuteticas anteriores haraacuten que
1 permitiraacute todas las solicitudes de conexiones desde la red local hacia internet2 descartaraacute (ignoraraacute) todas las solicitudes de conexiones desde internet hacia su firewall o red local y se
registra un mensaje a nivel informativo (info level log vea aquiacute la descripcioacuten de los niveles de registro)3 rechaza todas las solicitudes de conexiones y registra un mensaje a nivel informativo Cuando una solicitud
se rechaza el firewall devuelve un RST (si el protocolo es TCP) o un paquete ICMP de puerto-inalcanzabe para los otros protocolos
En este punto edite su archivo etcshorewallpolicy y haga los cambios que desee
Interfaces de Red
Para el resto de esta guiacutea nos referiremos al siguiente diagrama Si bien puede que no luzca como el de su red puede usarse para ilustrar los aspectos importantes de la configuracioacuten Shorewall
En este diagrama
bull La Zona DMZ consiste de los sistemas DMZ 1 y DMZ 2 Una DMZ se usa para aislar su servidors accesibles desde internet de sus sistemas locales tal que si uno de esos servidores estaacute comprometido auacuten tendraacute el firewall entre el sistema comprometido y sus sistemas en la red local
bull La Zona Local consiste de los sistemas Local 1 Local 2 y Local 3bull Todos los sistemas desde el ISP hacia afuera componen la Zona Internet
La forma maacutes cimple de definir zonas es asociar el nombre de la zona (previamente definida en etcshorewallzones) con una interface de red Esto se hace en el archivo etcshorewallinterfaces El firewall ilustrado arriba tiene tres interfaces de red Donde la conectividad hacia Internet es hecha a traveacutes de un cable Modem o DSL la Interface Externa seraacute un adaptador Ethernet que se ecneuntra conectado al Modem (eg eth0) a menos que conecte usando Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta usando un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces desearaacute establecer CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Local seraacute un adaptador Ethernet (eth0 eth1 o eth2) y conectaraacute a un hub o switch Sus computadores locales estaraacuten conectadas al mismo switch o hub (nota Si tiene un uacutenico sistema local puede conectar directamente el firewall al computador utilizando un cable cruzado)
Su Interface DMZ tambieacuten seraacute un adaptador Ethernet (eth0 eth1 o eth2) y se conectaraacute a un hub o switch Sus computadores DMZ seraacuten conectados al mismo switch o hub (nota Si tiene un uacutenico sistema DMZ puede conectar directamente el firewall al computador usando un cable cruzado)
Precaucioacuten
No conecte la interace interna y externa al mismo hub o switch exceptuando para pruebas Y estaacute corriendo Shorewall 147 o superior Cuando use estas versiones recientes puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en el archivo etcshorewallinterfaces para todas las interfaces conectadas al mismo hubswitch No se recomienda utilizar tal configuracioacuten con un firewall de produccioacuten
Para el resto de esta guiacutea asumiremos que
bull La Interface Externa es eth0bull La Interface Local es eth1bull La Interface DMZ es eth2
La cinfiguracioacuten Shorewall por omisioacuten no define el contenido de ninguna zona Para definir la configuracioacuten de arriba usando el archivo etcshorewallinterfaces dicho archivo contendriacutea
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectdmz eth2 detect
Note que la zona $FW no tiene una entrada en el archvio etcshorewallinterfaces
Edite el archivo etcshorewallinterfaces y defina las interfaces de red de su firewall asociadas con su zona Si tiene una zona disponible a traveacutes de maacutes de una interface de red simplemente incluya una entrada para cada interface y repita el nombre de zona tantas veces como haga falta con su respectiva interface de red
Ejemplo 1 Muacuteltiples Interfaces hacia una Zona
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectloc eth2 detect
Usted puede definir zonas maacutes complicadas usando el archivo etcshorewallhosts pero en la mayoriacutea de los casos ello no es necesario Vea Shorewall_and_Aliased_Interfaceshtml y Multiple_Zoneshtml para algunos ejemplos
Direccionamiento Subredes y Enrutamiento
Normalmente su ISP le asignaraacute un conjunto de direcciones IP Puacuteblicas Usted configuraraacute su interface externa de su firewall para que use una de dichas direcciones permanentemente y entonces tendraacute que decidir como usaraacute el resto de sus direcciones Antes de que contestemos esta pregunta es conveniente primero revisar los fundamentos
Si usted estaacute ampliamente familiarizado con el direccionamiento IP y el enrutamiento puede ir directo a la proacutexima seccioacuten
La siguiente discusioacuten revisa someramente el direccionamiento y el enrutamiento IP Si estaacute interesado en aprender maacutes acerca del tema le recomendaos ampliamente ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0
Direcciones IP
Las direcciones IP versioacuten 4 (IPv4) son nuacutemeros de 32 -bits La notacioacuten wxyz refiere a una direccioacuten donde el byte de orden superior tiene el valor ldquowrdquo el proacuteximo byte tiene el valor ldquoxrdquo etc Si tomamos la direccioacuten 1920214 y la expresamos en hexadecimal obtenemos
C000020E
o viacuteendolo como un entero de 32-bits
C000020E
Subredes
Usted comenzaraacute a escuchar los teacuterminos ldquored Clase Ardquo ldquored Clase B y red Clase C En los primeros diacuteas de IP las redes veniacutean en tres tamantildeos (existiacutea tambieacuten redes Clase D pero era usada de forma diferente)
Clase A - maacutescara de red 255000 size = 2 24Clase B - maacutescara de red 25525500 size = 2 16
Clase C - maacutescara de red 2552552550 size = 256
La clase de una red era determinada uniacutevocamente por el valor del byte superior de su direccioacuten tal que usted pudiera ver la direccioacuten IP e inmediatamente determinara la maacutescara asociada La maacutescara de red es un nuacutemero que cuando se aplica un Y loacutegico con la direccioacuten separa la direccioacuten de red del resto que es la direccioacuten de host Por ejemplo la direccioacuten Clase C 1920214 la direccioacuten de red es el hexadecimal C00002 y el nuacutemero de host es 0E
En la medida que internet crecioacute se hizo claro que tal particionamiento tan grueso de direcciones de 32-bits iva a ser muy limitante (iexclPreviamente a las grandes corporaciones y universidades le fueron asignadas sus propias redes clase A) Despueacutes de unos arranques en falso la teacutecnica de subredes evolucionoacute al sistema actual de redes maacutes pequentildeas la teacutecnica se le refiere como Classless InterDomain Routing (CIDR) Hoy diacutea cualquier sistema que usted probablemente use entenderaacute CIDR y las redes basadas en clases son ya algo del pasado
Una subred es un conjunto contiguo de direcciones IP tal que
1 La cantidad de direcciones en el conjunto es una potencia de 2 y2 La primera direccioacuten en el conjunto es un muacuteltiplo del tamantildeo del conjunto3 La primera direccioacuten en la subred se reserva y se le refiere como la direccioacuten de subred4 La uacutetima direccioacuten en la subred estaacute reservada como la direccioacuten de difusioacuten(broadcast) de la subred
Como puede ver por definicioacuten en cada subred de tamantildeo n hay (n - 2) direcciones utilizables (direcciones que se pueden asignar a maacutequinas) La primera y uacuteltima direccioacuten en la subred son utilizadas como direccioacuten de la subred y direccioacuten de difusioacuten respectivamente En consecuencia las subredes maacutes pequentildeas desperdician maacutes direcciones IP que las redes maacutes grandes
Ya que n es una potencia de dos faacutecilmente podemos calcular el Logaritmo-Base2 (log2) de n Para los tamantildeos maacutes comunes de subred el tamantildeo y su logaritmos base 2 son dados por la siguiente tabla
Tabla 1 Logaritmos Base-2
n log2 n (32 - log2 n)
8 3 29
16 4 28
32 5 27
64 6 26
128 7 25
256 8 24
512 9 23
1024 10 22
2048 11 21
4096 12 20
8192 13 19
16384 14 18
32768 15 17
65536 16 16
Notaraacute que la tabla arriba tambieacuten contiene una columna parar (32 - log2 n) Este nuacutemero es la Variable Length Subnet Mask (VLSM) para una red de tamantildeo n De la tabla arriba podemos derivar la siguiente que es un poco maacutes faacutecil de usar
Tabla 2 VLSM
Subnet Size VLSM Subnet Mask
8 29 255255255248
16 28 255255255240
32 27 255255255224
64 26 255255255192
128 25 255255255128
256 24 2552552550
512 23 2552552540
1024 22 2552552520
2048 21 2552552480
4096 20 2552552400
8192 19 2552552240
16384 18 2552551920
32768 17 2552551280
65536 16 25525500
2 24 8 255000
Note que la VLSM se escribe con barra (ldquordquo) -- a menudo escucharaacute de una subred de tamantildeo 64 referida como una subred ldquobarra 26rdquo y una de tamantildeo 8 referida como de ldquobarra 29rdquo
La maacutescara de subred es simplemente un nuacutemero de 32 bits con los primeros ldquoVLSMrdquo bits puestos a uno y los remanentes bits puestos a cero Por ejemplo para una subred de tamantildeo 64 la maacutescara de subred tiene los primeros 26 bits en uno
11111111111111111111111111000000 = FFFFFFC0 = FFFFFFC0 = 255255255192
La maacutescara de subred tiene la propiedad de que si se hace un Y loacutegico con una direccioacuten en la subred el resultado es la direccioacuten de la subred Igual de importante si hace un Y loacutegico de la maacutescara de subre con una direccioacuten fuera de la subred el resultado NO es la direccioacuten de la subred Como ya veremos esta propiedad de la maacutescara de subred es muy uacutetil para el enrutamiento
Para una subred cuya direccioacuten es abcd y cuyo Variable Length Subnet Mask es v denotamos la subred como ldquoabcdvrdquo usando Notacioacuten CIDR Ejemplo
Tabla 3 Subred
Subred 1010100 - 101010127
Tamantildeo Subred 128
Direccioacuten Subred 1010100
Direccioacuten Difusioacuten 101010127
Notacioacuten CIDR 101010025
Existen dos subredes degeneradas que merecen ser nombradas la subred con un miembro y la subre con 2 32 miembros
Tabla 4 32 y 0
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
rpm -Uvh --nodeps ltshorewall rpmgt
Nota
A partir de Shorewall 140 Shorewall depende del paquete iproute Desafortunadamente algunas distribuciones llaman a este paquete por otro nombre iproute2 lo que causa que Shorewall falle con el mensaje diagnoacutestico
error failed dependenciesiproute is needed by shorewall-140-1
A esto se le puede dar la vuelta usando la opcioacuten --nodeps de rpm
rpm -Uvh --nodeps ltshorewall rpmgt
3 Vea si hay alguna incompatibilidad entre su configuracioacuten y la nueva versioacuten de Shorewall y corrija si es necesario
shorewall check
4 Reinicie el firewall
shorewall restart
Actualizando con tarball
Si ya tiene instalado Shorewall y estaacute actualizando a una nueva versioacuten usando tarball
1 desempaque el tarball
tar -zxf shorewall-xyztgz
2 cd al directorio shorewall (la versioacuten estaacute codificada en el nombre del directorio como en ldquoshorewall-301rdquo)
3 Tipee
installsh
4 Vea si hay alguna incompatibilidad entre su configuracioacuten y la nueva versioacuten de Shorewall y corrija si es necesario
shorewall check
5 Arranque el firewall tipeando
shorewall start
6 Si el guioacuten isntall no fue capaz de configurar Shorewall para su arranque automaacutetico al arrancar el sistema (boot) vea estas instrucciones
Actualizando con lrp
Lo siguiente fue contribucioacuten de Charles Steinkuehler en la lista de correos Leaf
Es MUY simplesoacutelo ponlo en un nuevo CD y reinicia -) De hecho soacutelo bromeo ligeramenteasiacute es exactamente como actualizo mis firewalls de produccioacuten La facilidad de respaldo parcial que agregue a Dachstein permite que los datos de configuracioacuten sean almacenados separadamente del resto del paquete
Una vez que los datos de configuracioacuten estaacuten separados del resto del paquete es faacutecil actualizar el paquete mientras mantiene su configuracioacuten actual (en mi caso insertando un CD y reiniciando)
Los usuarios que no estaacuten corriendo con muacuteltiples rutas de paquetes y usan respaldos parciales tambieacuten pueden actualizar un paquete soacutelo toma un poco maacutes de trabajo La idea general es usar el respaldo parcial para salvar su configuracioacuten remplazar el paquete y restaurar sus viejos archivos de configuracioacuten Instrucciones paso-a-paso para una forma de hacer esto (asumiendo un sistema convencional de un-floppy LEAF) seriacutea
bull Haga una copia de respaldo de su disco de firewall (NUEVO) Este es el disco al que agregaraacute el paquete actualizado
bull Dele formato a un floppy para usarlo como ubicacioacuten temporal para sus archivos de configuracioacuten (XFER) Este disco deberiacutea tener el mismo formato que el disco del firewall (y simplemente pudiera ser simplemente otra copia de respaldo de firewall actual)
bull Aseguacuterese de tener una copia qeu funcione de su fierwall (VIEJO) en alguacuten lugar seguro que NO usaraacute durante este proceso De esta forma si algo sale mal usted simplemente reinicia con el disco VIEJO para volver a una configuracioacuten que funciona
bull Remueva su disco actual de configuracioacuten de firewall y remplaacutecelo con el disco XFERbull Use el menuacute de respaldo lrcfg para ahcer un respaldo parcial del paquete que desea actualizar estando
seguros acerca de los archivos en el disco XFER A partir del menuacute de respaldo
t e ltentergt p ltentergtb ltpackage1gt ltentergtb ltpackage2gt ltentergt
bull Descargue y copie el paquete que desea actualizar en el disco NUEVObull Reinicie su firewall usando el disco NUEVOen este punto su actualizacioacuten tendraacute su configuracioacuten por
omisioacutenbull Monte el disco XFER (mount -t msdos devfd0u1680 mnt)bull CD al directorio raiacutez (cd )bull Extraiga manualmente los datos de configuracioacuten para cada paquete que actualizoacute
tar -xzvf mntpackage1lrptar -xzvf mntpackage2lrp
bull Desmonte (umount mnt) y retire el disco XFERbull Usando lrcfg haga respaldos FULL de sus paquetes actualizadosbull Reinicie verificando que el firewall funciona como se espera Algunos archivos de configuracioacuten puede que
necesiten ser entonados para que funcionen apropiadamente con los binarios actualizados del paquete
Importante
El nuevo archivo paquete ltpaquetegtlocal puede usar para entonar cuaacuteles archivos estaacuten incluidos (y excluidos) del respaldo parcial (vea el Dachstein-CD README para maacutes detalles) Si este archivo no existe los guiones de respaldo asumiraacuten que cualquier cosa del archivo ltpackagegtlist que reside en etc o varliblrpkg es parte de los datos de configuracioacuten y se usa para crear el respaldo parcial Si Shorewall pone algo en etc que no sea un archivo de configuracioacuten modificado por el usuario deberiacutea crearse un archivo apropiado shorwalllocal antes de hacer el respaldo parcial [Nota del Editor Shorewall coloca soacutelo archivos modificables por el usuario en etc]
Nota
Es obviamente posible hacer lo anterior en-sitio sin usar muacuteltiples discos e incluso sin hacer respaldos parciales (ie copiar archivos de configuracioacuten actuales a tmp manualmente extraer el nuevo paquete sobre el firewall que estaacute corriendo luego copiar o fusionar los datos desde tmp yo respaldoo similar) pero para cualquiera que sea capaz de toda esa gimnasia en la liacutenea de comandos es probable que lo pueda hacer sin ninguacuten tipo de instrucciones detalladas -)
Para maacutes informacioacuten de otras herramientas de actualizacioacuten LEAFBering mire en este artiacuteculo de Alex Rhomberg
Configurando Shorewall
Usted necesitaraacute editar algunos o todos los archivos de configuracioacuten para lograr la configuracioacuten deseada En la mayoriacutea de los casos las Guiacuteas Raacutepidas de Shorewall contienen toda la informacioacuten que usted necesita para comenzar
DesinstalarVolverAtraacutes
Vea ldquoVolverAtraacutes y Desinstalarrdquo
Firewall Baacutesico Dos-Interfaces
Introduccioacuten
El configurar un sistema Linux como firewall para una red pequentildea es relativamente una tarea simple si entiende los principios baacutesicos y sigue la documentacioacuten
Esta guiacutea no intenta profundizar en todas las facilidades de Shorewall A cambio se enfoca en lo que se requiere para configurar Shorewall en su configuracioacuten maacutes comuacuten
bull Sistema Linux usado como firewallrouter para una red local pequentildeabull Un uacutenica direccioacuten IP puacuteblica Si tiene maacutes de una direccioacuten IP puacuteblica esta no es la guiacutea que desea -- vea
la Guiacutea de Configuracioacuten de Shorewall bull Conexioacuten Internet por cable modem DSL ISDN Frame Relay discada
Aquiacute se muestra un esquemaacutetico de una instalacioacuten tiacutepica
Figura 1 Configuracioacuten comuacuten de firewall con dos interfaces
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windowstrade usted salvarlos como archivos Unixtrade si su editor soporta esta opcioacuten o debe pasarlo por el programa dos2unix antes de intentar de usarlos De forma similar si copia un archivo de configuracioacuten del disco duro en Windowstrade a un disco flexible debe pasarlos por dos2unix antes de usarlos con Shorewall
bull Versioacuten Windows trade de dos2unix bull Versioacuten Linux de dos2unix
Requerimientos de Sistema
Shorewall requiere que tenga instalado el paquete iprouteiproute2 (en RedHattrade el paquete se llama iproute) Usted puede saber si este paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando which para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se le recomienda primero leer a lo largo de la guiacutea para familiarizarse con los toacutepicos involucrados para luego volver sobre ella y hacer los cambios de configuracioacuten
Convenciones
Los puntos en los cuales se recomiendan cambios de configuracioacuten estaacuten sentildealadas
Las notas de configuracioacuten que son uacutenicas de LEAFBering estaacute marcadas con
PPTPADSL
Si tiene un Modem ADSL y usa PPTP para comunicarse con un servidor en ese modem usted debe hacer los cambios que se recomiendan aquiacute en adicioacuten a los que se explican abajo ADSL con PPTP se encuentra frecuentemente en Europa y notable Austria
Conceptos Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall -- para configuraciones simples encontraraacute que soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea
Alerta
Nota para los Usuarios Debian
Si instala usando deb encontraraacute que su directorio etcshorewall estaacute vaciacuteo Esto es intencional El esqueleto de archivos de configuracioacuten se pueden encontrar en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no planea modificarlos
Importante
Despueacutes que tiene instalado Shorewall localice las muestras two-interfaces
1 Si instaloacute usando RPM las muestras estaraacuten en el subdirectorio Samplestwo-interfaces del directorio de documentacioacuten de Shorewall Si no sabe donde estaacute el directorio de documentacioacuten Shorewall puede encontrarlo usando el siguiente comando
~ rpm -ql shorewall | fgrep two-interfacesusrsharedocpackagesshorewallSamplestwo-interfacesusrsharedocpackagesshorewallSamplestwo-interfacesinterfacesusrsharedocpackagesshorewallSamplestwo-interfacesmasqusrsharedocpackagesshorewallSamplestwo-interfacespolicyusrsharedocpackagesshorewallSamplestwo-interfacesroutestoppedusrsharedocpackagesshorewallSamplestwo-interfacesrulesusrsharedocpackagesshorewallSamplestwo-interfaceszones~
2 Si instaloacute usando el tarball las muestras estaacuten en el directorio Samplestwo-interfaces en el tarball3 Si instaloacute usando deb las muestras estaacuten en usrsharedocshorewallexamplestwo-interfaces
En la medida que se explica cada archivo le sugerimos que vea el archivo en cuestioacuten en su sistema -- cada archivo contiene instrucciones detallads de configuracioacuten y entradas por omisioacuten
Shorewall ve la red sobre la cual trabaja como si estuviera compuesta de un conjunto de zonas En la configuracioacuten de muestra two-interface se usan los siguientes nombres de zonas
ZONE TYPE OPTIONS IN OUT OPTIONS OPTIONSfw firewallnet ipv4loc ipv4
Las zonas se definen en el archivo etcshorewallzones
Note que Shorewall reconoce el sistema firewall como su propia zona - cuando se procesa el archivo etcshorewallzones el nombre de la zona firewall se almacena en la variable shell $FW que puede usarse para referirse a la zona del firewall a lo largo de la configuracioacuten de Shorewall
Las reglas acerca del traacutefico a permitir o rechazar se expresan en teacuterminos de zonas
bull Usted expresa su poliacutetica por omisioacuten para las conexiones desde una zona a otra en el archivo etcshorewallpolicy
bull Usted define excepciones para dichas poliacuteticas por omisioacuten en el archivo etcshorewallrules
Para cada solicitud de conexioacuten que ingresa al firewall la solicitud se verifica primero contra el archivo etcshorewllrules Si no aplica ninguna regla para la solicitud de conexioacuten entonces la primera poliacutetica en etcshorewallpolicy que coincida se aplica Si hay una accioacuten comuacuten definida para la poliacutetica en etcshorewallactions o usrshareshorewallactionsstd entonces esa accioacuten se ejecuta antes de la poliacutetica
El archivo etcshorewallpolicy que se incluye con la muestra two-interface tiene las siguientes poliacuteticas
SOURCE DEST POLICY LOG LEVEL LIMITBURSTloc net ACCEPTnet all DROP infoall all REJECT info
En la muestra two-interface la liacutenea abajo estaacute incluida pero estaacute comentada Si desea que su sistema firewall tenga acceso completo a los servidores en internet quite el comentario a esa liacutenea
SOURCE DEST POLICY LOG LEVEL LIMITBURST$FW net ACCEPT
Las poliacuteticas anteriores
bull Permitiraacuten todas las solicitudes de conexiones desde la red local hacia internetbull Desacartaacuten (ignoraraacuten) todas las solicitudes de conexioacuten desde internet hacia su firewall o red localbull Opcionalmente aceptar todas las solicitudes de conexiones desde el firewall hacia internet (si levantoacute el
comentario de la poliacutetica adicional)bull Rechazaraacuten todas las otras solicitudes de conexioacuten
Es importante notar que las poliacuteticas Shorewal (y las reglas) refieren a conexiones y no flujo de paquetes Con las poliacuteticas definidas en el archivo etcshorewallpolicy como se muestra arriba las conexiones se permiten desde la zona loc a la zona net incluso aunque no esten permitidas las conexiones desde la zona loc al propio firewall
En este punto edite su etcshorewallpolicy y haga los cambios que considere
Interfaces de Red
El firewall tiene dos interfaces de red Donde si bien la conectividad es a traveacutes de cable modem o Modem DSL la Interface Externa seraacute el adaptador ethernet que se encuentre conectado a dicho Modem (eg eth0) a menos que conecte viacutea Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta por un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces querraacute poner CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Interna seraacute un adaptador ethernet (eth1 o eth0) y conectaraacute a un hub o switch Sus computadores se conectaraacuten al mismo hubswitch (nota Si tiene un uacutenico sistema interno puede conectarlo directamente al firewall usando un cable cruzado)
Alerta
No conecte la interface interna y externa al mismo hub o switch exceptuado para pruebas Usted puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en etcshorewallinterfaces para todas las interfaces comunes al mismo hubswitch Usando tal configuracioacuten con un firewall en produccioacuten no es para nada recomendable
La muestra two-interface de Shorewall asume que la interface externa es eth0 y que la interface interna es eth1 Si su configuracioacuten difiere tendraacute que modificar la muesta acordemente en el archivo etcshorewallinterfaces Mientra esteacute ahiacute puede revisar la lista de opciones que le son especiacuteficas para las interfaces Algunas pistas
Tip
Si su interface externa es ppp0 o ippp0 puede remplazar en la segunda columna detect con ldquo-rdquo (sin las comillas)
Tip
Si su interface externa es ppp0 o ippp0 o si tiene una direccioacuten IP estaacutetica puede eliminar dhcp de la lista de opciones
Tip
Si su interface interna es un puente (bridge) cree If your internal interface is a bridge create using the brctl utility then you must add the routeback option to the option list
Direcciones IP
Antes de seguir avanzando debemos decir unas cuantas palabras acerca de las direcciones Internet Protocol (IP) Normalmente su ISP le asignaraacute una uacutenica direccioacuten IP Puacuteblica Esta direccioacuten puede ser asignada viacutea Dynamic Host Configuration Protocol (DHCP) o como parte del establecimiento de su conexioacuten cuando disca (modem estandar) o establece su conexioacuten PPP En raras ocasiones su ISP le asignaraacute una direccioacuten IP estaacutetica esto significa que usted configuraraacute la interface exerna de su firewall para usar permanentemente esa direccioacuten Sin embargo su direccioacuten IP asignada seraacute compartida por todos sus sistemas cuando accedan a Internet Usted tendraacute que asignar sus propias direcciones en su red interna (la Interface Interna en su firewall maacutes las otras computadores) El RFC 1918 reserva varios rangos de direcciones Privadas IP para ese propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Antes de arrancar Shoreall usted debe ver la direccioacuten IP de su interface externa y si es una dentro de los rangos descritos arriba deberiacutea quitar la opcioacuten norfc1918 de la entrada que corresponde a su interface externa en etcshorewallinterfaces
Usted querraacute asignar sus direcciones desde la misma subred Para nuestros propoacutesitos podemos considerar una subred que consista de un rango de direcciones xyz0 - xyz255 Tal subred tendraacute una maacutescara de red de 2552552550 La direccioacuten xyz0 se reserva como la Direccioacuten de Subred y xyz255 se reserva como la Direccioacuten de Difusioacuten de la Subred (Boradcast) En Shorewall una subred se describe usando la notacioacuten Classless InterDomain Routing (CIDR) que consiste de direcciones de subred seguida de 24 El ldquo24rdquo se refiere a la cantidad de 1 consecutivos a la cabeza de la maacutescara de red
Rango 1010100 - 101010255
Direccioacuten de Subred 1010100
Direccioacuten de Difusioacuten 101010255
Notacioacuten CIDR 101010024
Es convencioacuten asignarle la primera direccioacuten utilizable en la subred a la interface interna (1010101 en el ejemplo anterior) o la uacuteltima (101010254)
Uno de los propoacutesitos de hacer subredes es permitir a todas las computadoras en la subred entender queacute otras computadoras pueden comunicarse con ellas directamente Para comunicarse con sistemas fuera de la subre los sistemas deben enviar los paquetes a su detino final a traveacutes de un gateway (enrutador)
Sus computadoras locales (computer 1 y computer 2 en el diagrama arriba) deben ser configuradas con el default gateway a la direccioacuten IP de la interface interna del firewall
La discusioacuten a continuacioacuten repasa por encima los temas de subredes y enrutamiento Si estaacute interesado en aprender maacutes acerca del direccionamiento y el enrutamiento IP si le recomienda altamente el libro ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0 (enlace)
El resto de esta guiacutea asume que tiene su red dispuesta de esta forma
El default gateway para las computdores 1 y 2 seriacutea 101010254
Alerta
Su ISP puede que le asigne una direccioacuten RFC 1918 para su interface externa Si dicha direccioacuten estaacute en la subred 101010024 entonces tendraacute que seleccionar una subred DIFERENTE RFC 1918 para su red local
Enmascaramiento IP (SNAT)
Las direcciones reservadas por el RFC 1918 son a veces referidas como no-ruteable debido a que los enrutadores en el corazoacuten de Internet no se renviacutean los paquetes IP cuando tienen como destino una direccioacuten RFC 1918 Cuando uno de su sistemas locales (digamos computer 1) enviacutea una solicitud de conexioacuten a una maacutequina en Internet el firewall debe hacer Network Address Translation (NAT Traduccioacuten de Direccioacuten de Red) El firewall rescribe la direccioacuten de origen en el paquete para que sea la direccioacuten de la interface externa del firewall en otras palabras el
firewall hace parecer que la solicitud de conexioacuten fueacute originada en el propio firewall Esto es necesario hacerlo para la maaacutequina destino sea capaz de enrutar la respuesta de vuelta hasta el firewall (recuerde que los paquetes cuyos destinos es una direccioacuten RFC 1918 no son enrutados a traveacutes de internet para que la respuesta vuelva su origen en computer 1) Cuando el firewall recibe un paquete de respuesta rescribe la direccioacuten de destino de vuelta a 1010101 y enviacutea el paquete a computer 1
En los sistemas Linux el proceso anterior es conocido como Enmascaramiento IP pero tambieacuten veraacute el uso del teacutermino Source Network Address Translation (SNAT) Shorewall sigue la convencioacuten que usa Netfilter
bull Enmascaramiento (Masquerade) describe el caso donde se permite al sistema firewall detectar automaacuteticamente la direccioacuten de la interface externa
bull SNAT se refiere al caso donde expliacutecitamente especifica la direccioacuten origen que desea usar en los paquetes salientes
En Shorewall tanto Enmascaramiento y SNAT se configuran con entradas en el archivo etcshorewallmasq Normalmente usaraacute Enmascaramiento si su direccioacuten IP en la interface externa es dinaacutemica y SNAT en el caso de direccioacuten IP estaacutetica
Si la interface externa de su firewall es eth0 no se necesita modificar el archivo provisto con la muestra De otra forma edite etcshorewallmasq y cambie la primera columna para que refleje el nombre de su interface externa y la segunda columna el nombre de su interface interna
Si su direccioacuten IP externa es estaacutetica puede enterarla en la tercrea columna en etcshorewallmasq si desea si bien su firewall funcionaraacute bien si no lo hace Enterar su direccioacuten IP estaacutetica en la tercera columna hace que procesar los paquetes salientes sea un poco maacutes eficiente
Si estaacute usando el paquete Debian por favor revise su archivo shorewallconf para asegurarse que lo siguiente esteacute escrito correctamente si no es asiacute caacutembielo apropiadamente
bull IP_FORWARDING=On
Desviacuteo de Puerto (DNAT)
Una de sus metas puede ser correr uno o mas servidores en sus sistemas locales Ya que dichas computadoras tienen direcciones RFC-1918 no es posible a los clientes en internet conectar directamente con ellas En cambio es necesario para dichos clientes dirigir sus solicitudes de conexioacuten hacia el firewall quien rescribe la direccioacuten destino a la direccioacuten de su servidor y enviacutea el paquete al servidor Cuando su servidor responde el firewall automaacuteticamente realiza SNAT para rescribir la direccioacuten origen en la respuesta
El proceso anterior es llamado Desviacuteo de Puerto o Port Forwarding o Destination Network Address Translation (DNAT) Usted puede configurar el desviacuteo de puerto usando las reglas DNAT en el archivo etcshorewallrules
La forma general de una regla de desviacuteo de puerto simple en etcshorewallrules es
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net locltserver local ip addressgt[ltserver portgt] ltprotocolgt ltportgt
Shorewall incorpora macros para muchas de las aplicaciones populares Revise en usrshareshorewallmacro para identificar los macros disponibles en su versioacuten Los macros simplemente crean reglas DNAT suministrando el protocolo y puerto(s) como se muestra en los siguientes ejemplos
Ejemplo 1 Servidor Web
Usted estaacute corriendo un Servidor Web en computer 2 y desea desviar el puerto entrante TCP 80 a este sistema
ACTION SOURCE DEST PROTO DEST PORT(S)WebDNAT net loc1010102
Ejemplo 2 Servidor FTP
Usted estaacute corriendo un Servidor FTP en computer 1 tal que desea entonces desviar el puerto entrante TCP 21 a ese sistema
ACTION SOURCE DEST PROTO DEST PORT(S)FTPDNAT net loc1010101
Para FTP necesitaraacute adicionalmente el motor de seguimiento de conexiones y el soporte NAT en su kernel Para los kernel provistos por el vendedor esto significa que los moacutedulos ip_conntrack_ftp y ip_nat_ftp deben ser cargados Shorewall cargaraacute automaacuteticamente dichos moacutedulos si estaacuten disponibles y localizados en el lugar estandar bajo libmodulesltkernel versiongtkernelnetipv4netfilter
Un par de puntos importantes a mantener en mente son
bull Usted debe probar la regla anterior desde un cliente externe a su red local (ie no pruebe desde un explorador en los computadores 1 o 2 o en el firewall) Si desea ser capaz de acceder a su servidor web yo ftp desde adentro de su fireall usando la direccioacuten IP de su interface externa vea Shorewall FAQ 2
bull Muchos ISPs bloquean las solicitudes entrantes al puerto 80 Si tiene problemas conectaacutendose a su servidor intente seguir la siguiente regla y conectar al puerto 5000
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net loc101010280 tcp 5000
En este punto modifique etcshorewallrules para agregar cualquier regla DNAT que se requiera
Importante
Cuando pruebe las reglas DNAT como las anteriores debe realizar las pruebas desde un cliente AFUERA de su fiewall (en la zona net ) Usted no puede probar estas reglas desde la parte interior del firewall
Para tips de Resolucioacuten de Problemas con DNAT vea FAQs 1a y 1b
Domain Name Server (DNS)
Normalmente cuando usted conecta con su ISP y como parte del proceso de obtener una direccioacuten IP el resolutor Domain Name Service (DNS) del firewall seraacute automaacuteticamente configurado (eg el archivo etcresolvconf seraacute rescrito) Alternativamente su ISP puede darle la direccioacuten IP de un par de servidores de nombre DNS para que manualmente los configure como servidores de nombre primario y secundario respectivamente Sin importar la forma en coacutemo se configuran los servidores DNS en su firewall es su responsabilidad configurar el resolutor en sus sistemas internos Puede escoger uno de dos caminos
bull Configura sus sistemas internos para que usen los servidores de nombre de su ISP Si su ISP le ha suministrado las direcciones de sus servidores DNS o de otros disponibles en su sitio web usted puede configurar sus sistemas internos para que usen dichas direcciones Si dicha informacioacuten no estaacute disponible vea en el archivo etcresolvconf de su sistema firewall -- los servidores de nombre son declarados con los registros nameserver en este archivo
bull Puede configurar un Cache Servidor de Nombres en su firewall Red Hattrade tiene un RPM para el cache servidor de nombres (el RPM tambieacuten requier el RPM bind) y para los usuarios Bering hay un dnscachelrp Si toma este camino usted configuraraacute sus sistemas internos para que usen el mismo firewall como su servidor primario (o uacutenico) de nombres Usariacutea la direccioacuten IP interna de su firewall (101010254 en el ejemplo anterior) como direccioacuten del servidor de nombres Para permitir a los sistemas locales hablar con el cache servidor de nombre deberaacute abrir el puerto 53 (ambos UDP y TCP) desde la red local hacia el firewall esto lo hace agregar las siguientes reglas en etcshorewallrules
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT loc $FW
Otras Conexiones
La muestra two-interface incluye las siguientes reglas
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT $FW net
Esta regla permite el acceso DNS desde su firewall y puede quitarse si ha quitado el comentario en la liacutenea de etcshorewallpolicy que permite todas las conexiones desde el firewall hacia internet
En la regla que se muestra arriba ldquoDNSACCEPTrdquo es un ejemplo de una invocacioacuten macro Shorewall incluye una cantidad de macros (vea usrshareshorewallmacro) y usted puede agregar los suyos
Usted no tiene que usar los macros cuando codifique las reglas en etcshorewallrules Shorewall arrancaraacute ligeramente maacutes raacutepido si codifica sus reglas directamente en vez de usar macros La regla anterior tambieacuten pudo haber sido codificada asiacute
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW net udp 53ACCEPT $FW net tcp 53
En los casos donde Shorewall no incluya un macro que satisfaga sus necesidades puede ya sea definir un nuevo macro o simplemente codificar las reglas apropiadas directamente
La muestra tambieacuten incluye
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT loc $FW
Esta regla permite correr el servidor SSH en su firewall y conectarse a eacutel desde los sistemas locales
Si desea habilitar otras conexiones desde su firewall a otros sistemas el formato general usando macros es
ACTION SOURCE DEST PROTO DEST PORT(S)ltmacrogtACCEPT $FW ltdestination zonegt
El formato general cuando no se usan macros predefinidos es
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW ltdestination zonegt ltprotocolgt ltportgt
Ejemplo 3 Servidor Web en el Firewall
Usted desea correr un servidor Web en su sistema firewall
ACTION SOURCE DEST PROTO DEST PORT(S)WebACCEPT net $FWWebACCEPT loc $FW
Estas dos reglas por supuesto seriacutean un agregado a las reglas listadas arriba bajo ldquoPuede configurar un Cache Servidor de Nombres en su firewall rdquo
Si no sabe queacute puerto y protcolo usa una aplicacioacuten particular mire aquiacute
Importante
No recomendados habilitar telnet desdehacia internet porque usa texto en claro para su comunicacioacuten (incluso para el login) Si desea acceso shell para su firewall desde Internet use SSH
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT net $FW
Los usuarios Bering querraacuten agregar las siguientes dos reglas para ser compatibles con la configuracioacuten Shorewall de Jacques
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT loc $FW udp 53 Allow DNS Cache to workACCEPT loc $FW tcp 80 Allow Weblet to work
Ahora edite su archivo etcshorewallrules para agregar o eliminar otras conexiones como se necesario
Algunos Concejos a Mantener en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque enviacutee solicitudes de conexioacuten a la direccioacuten IP de la interface externa de su firewall no significa que la solicitud seraacute asociada con la interface externa o con la zona ldquonetrdquo Cualquier traacutefico que se genere desde la red local seraacute asociado con su interface local y seraacute tratado como traacutefico loc-gtfw
bull Las direcciones IP son propiedades de los sistemas no de las interfaces Es un error pensar que su firewall sea capaz de renviar paquetes soacutelo porque puede hacerle ping a la direccioacuten IP de todas las interfaces IP del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping exitoso es que el enlace entre el sistema local y el firewall funciona bien y que probablemente tenga bien configurado el default gateway del sistema local
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zonas loc poniendo una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO necesariamente siguen automaacuteticamente el camino reverso al tomado por el paquete original de solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso en su camino Este tema usualmente salta a la palestra cuando se instala un firewall Shorewallall en paralelo a un gateway existente y se intenta usar DNAT a traveacutes del Shorewall sin cambiar el default gateway en el sistema que recibe la solicitud renviada Las solicitudes
entraraacuten por el firewall Shorewall donde la direccioacuten IP destino es rescrita pero la respuesta sale sin modificacioacuten por medio del gateway antiguo
bull Shorewall no tiene nocioacuten de adentro o afuera por siacute mismo Estos conceptos se incorporan en el coacutemo se configura Shorewall
Arrancando y Deteniendo Su Firewall
El procedimiento de instalacioacuten configura su sistema para arrancar Shorewall al arrancar (boot) el sistema pero el inicio de Shorewall estaacute deshabilitado por omisioacuten en su configuracioacuten asiacute que no intente arrancar su Shorewall hasta que termine la configuracioacuten Una vez que se hay completado la configuracioacuten de su firewall debe editar su etcshorewallshorewallconf y poner STARTUP_ENABLED=Yes
Importante
Los usuarios del paquete deb deben editar etcdefaultshorewall y poner startup=1
El firewall se arranca usando el comando ldquoshorewall startrdquo y se detiene con el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado para aquellas maacutequinas que tengan una entrada en el archivo etcshorewallroutestopped Un firewall detenido debe ser reiniciado usando el comando ldquoshorewall restartrdquo Si desea eliminar totalmente todo rastro de Shorewall de su configuracioacuten Netfilter use el comando ldquoshorewall clearrdquo
Esta muestra two-interface asume que usted desea habilitar el enrutamiento desdehacia eth1 (la red local) cuando Shorewall estaacute detenido Si su red local no estaacute conectada a eth1 o si desea habilitar el acceso desdehacia otras maacutequinas cambie apropiadamente el archivo etcshorewallroutestopped
Alerta
Si usted estaacute conectado a su firewall desde internet no enviacutee el comando ldquoshorewall stoprdquo a menos que haya agregado una entrada con la direccioacuten IP desde donde se conectoacute al archivo etcshorewallroutestopped Tampoco recomendamos usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarla con el comando ldquoshorewall tryrdquo
Lectura Adicional Recomendada
Se le recomienda altamente la paaacutegina Archivo de Facilidades de Configuracioacuten Comunes -- contiene tips uacutetiles acerca de las facilidades Shorewall que hacen maacutes faacutecil la administracioacuten del firewall Shorewall
Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
Una vez que tiene su arreglo de dos interfaces funcionando el siguiente paso loacutegico es agregar una conexioacuten de red inalaacutembrica El primer paso es agergar la tarjeta de red adicional a su firewall ya sea una tarjeta inalaacutembirca o una tarjeta ethernet que conecte a un punto de acceso inalaacutembirco
Precaucioacuten
Cuando agrega una tarjeta de red eacutesta no seraacute necesariamente detectada como la siguiente interface ethernet superior Por ejemplo si tiene dos interfaces ethernet en su sistema (eth0 and eth1) y agrega una tercera tarjeta que usa el mismo manejador (driver) de alguna de las dos anteriores la tercera no necesariamente seraacute detectada como eth2 mal pudiera ser detectada como eth0 o eth1 Usted puede ya sea vivir con ello o puede intercambiar las tarjetas en los soacutecates hasta que la nueva tarjeta sea detectada como eth2
Su nuevo arreglo de red luciraacute similar a la figura siguiente
La primera cosa notable es que las computadores en su red inalaacutembrica estan en una subred diferente a los de su red cableada en la LAN En el ejemplo de arriba hemos escogido usar la red 101011024 Las computadoras 3 y 4 seriacutean configuradas con la direccioacuten IP del default gateway IP a 101011254
Segundo hemos escogido incluir la red inalaacutembrica como parte de la zona local Ya que Shorewall permite el traacutefico en-la-zona por omisioacuten el traacutefico puede fluir libremente entre la red cableada local y la red inalaacutembrica
Hay soacutelo dos cambios necesarios para nuestra configuracioacuten Shorewall
bull Se necesita agregar una entrada a etcshorewallinterfaces para la interface de red inalaacutembrica Si la interface inalaacutembrica es wlan0 la entrada puede lucir asiacute
ZONE INTERFACE BROADCAST OPTIONSloc wlan0 detect maclist
Como se muestra en la entrada anterior se recomienda usar la opcioacuten maclist para el segmento inalaacutembrico En paralelo agregue las entradas para las computadoras 3 y 4 en etcshorewallmaclist para prevenir que sus vecinos obtengan una conexioacuten gratuita a internet a sus expensas Comience por omitir esta opcioacuten cuando tenga todo funcionando entonces agregue esta opcioacuten y configure su archivo etcshorewallmaclist
bull Usted necesita agregar una entrada al archivo etcshorewallmasq para enmascarar el traacutefico desde la red inalaacutembrica hacia internet Si su interface hacia internet es eth0 y su interface inalaacutembrica es wlan0 la entrada seriacutea asiacute
INTERFACE SUBNET ADDRESSeth0 wlan0
Otra cosa a notar para poner la red de Microsofttrade a funcionar entre las redes inalaacutembrica y cableada necesitaraacute ya sea un servidor WINS o un PDC Yo personalmente uso Samba configurado como servidor WINS corriendo en mi firewall Correr un servidor WINS en el firewall requiere las reglas que se listan en documentacioacuten ShorewallSamba
Guiacutea de Configuracioacuten de Shorewall
Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
Precaucioacuten
Este artiacuteculo aplica a Shorewall 30 en adelante Si estaacute corriendo una versioacuten previa de Shorewall 300 entonces por favor vea la documentacioacuten para dicha liberacioacuten
Introduccioacuten
Esta guiacutea estaacute destinada a los usuarios que desean configurar Shorewall en entornos donde un conjunto de direcciones IP puacuteblicas deben ser manejadas Para quienes desean conocer maacutes acerca de Shorewall en otros entornos revise las Guiacuteas Raacutepidas de Shorewall Debido a las amplias diferentes posibles aplicaciones la Guiacutea le daraacute directrices y apuntaraacute hacia otros recursos si ello es necesario
Precaucioacuten
Shorewall requiere el paquete iprouteiproute2 instalado (en RedHat el paquete se llama iproute) Usted puede saber si el paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando ldquowhichrdquo para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se recomienda que primero lea la guiacutea para que se familiarice con lo que estaacute involucrado y luego vuelva hacia atraacute y comience sobre los cambios de configuracioacuten requeridos Los puntos donde se recomiendan cambios de
configuracioacuten se sentildealan con
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windows usted debe salvarlos como archivos Unix si su editor soporta dicha opcioacuten o debe ejecutar dicho archivo con dos2unix antes de usarlo con Shorewall De forma similar si copia un archivo de configuracioacuten desde su disco duro en Windows a un disco flexible debe ejecutar previamente dos2unix contra la copia antes de usarla con Shorewall
bull Enlace a versioacuten Windows de dos2unix httpwwwsimtelnetpubpd51438html bull Enlace a versioacuten Linux de dos2unix httpwwwmegalomancom7Ehanysoftwarehd2u
Conceptos de Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall para la mayoriacutea de las configuraciones soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea El esqueleto de archivos de configuracioacuten es creado durante el Proceso de Instalacioacuten de Shorewall
Alerta
Nota para los Usuarios Debian
Si instala usando un deb encontraraacute que el directorio etcshorewall estaacute vaciacuteo Esto es intencional Los archivos del esqueleto correspondientes a la liberacioacuten correspondiente pueden encotrarse en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no los modifica
En la medida que introducimos cada archivo sugerimos que revise dicho archivo en su sistema cada archivo contiene instrucciones detalladas de configuracioacuten
Shorewall ve la red donde estaacute corriendo como si estuviera compuesta de un conjunto de zonas En esta guiacutea usaremos las siguientes zonas
fw
El propio sistema firewall
net
La red puacuteblica Internet
loc
La red local privada que usa direcciones IP privadas
dmz
Una Zona Desmilitarizada que aloja servidores de acceso puacuteblico
Las zonas se definen en el archivo etcshorewallzones
Importante
El archivo etcshorewallzones incluiacutedo en la distribucioacuten estaacute vaciacuteo Usted puede crear el conjunto de zonas estandar descritas anteriormente copiando y pegando el siguiente contenido en dicho archivo
ZONE TYPE OPTIONSfw firewallnet ipv4loc ipv4dmz ipv4
Note que Shorewall reconoce al sistema firewall como su propia zona El ejemplo anterior sigue la convencioacuten usual de nombres zona firewall fw El nombre especificado para la zona firewall (fw en el ejemplo anterior) se almacena en la variable shell $FW cuando se procesa el archivo etcshorewallzones Con la excepcioacuten del nombre asignado a la zona firewall Shorewall no asocia ninguacuten significado especial a los nombes de zona Las zonas son lo que USTED hace de ellas Ello significa que no debe esperar que Shorewall haga algo especial porque esta es la zona interna o porque esta es la zona DMZ
Edite el archivo etcshorewallzones y haga los cambios necesarios
La reglas acerca de queacute traacutefico permitir y negar se expresan en teacuterminos de las zonas
bull Usted expresa la poliacutetica por omisioacuten para conexiones desde una a otra zona en el archivo etcshorewallpolicy
bull Usted define excepciones a dichas poliacuteticas en etcshorewallrules
Shorewall se construye sobre el motor de kernel Netfilter Netfilter implementa la funcioacuten de seguimiento de conexiones que permite lo que se denomina como inspeccioacuten por estado (stateful inspection) de paquetes Esta capacidad de manejar los estados permite que las reglas de firewall sean definidas en teacuterminos de conexiones en vez de paquetes Con Shorewall usted
1 Identifica la zona origen (cliente)2 Identifica la zona destino (servidor)3 Si la POLITICA de la zona cliente a la zona servidor es lo que desea para esta pareja clienteservidor no
necesita hacer nada adicional4 Si la POLITICA no es lo que desea entonces debe agregar una regla La regla se expresa en teacuterminos de la
zona del cliente y de la zona del servidor
Soacutelo porque las conexiones de un tipo particular desde la zona A hacia el firewall estaacuten permitidas y que tambieacuten estaacuten permitidas desde el firewall a la zona B NO sigifica que estas conexiones esten permitidas entre la zona A y la zona B (en otras palabras las poliacuteticas y reglas que involucran a la zona firewall no son transitivas) A cambio significa que usted puede tener un proxy corriendo en el firewall que acepta conexiones desde la zona A y luego establece conexiones separadas por siacute mismo desde el firewall hacia la zona B
Para cada solicitud de conexioacuten que entra al firewall la solicitud se chequea primero contra el archivo etcshorewallrules Si ninguna regla del archivo aplica se aplica a la solicitud de conexioacuten la primera poliacutetica en etcshorewallpolicy que corresponda con dicha solicitud despueacutes de que haya pasado por la accioacuten comuacuten apropiada (si existe alguna)
Previo a Shorewall 220 el archivo por omisioacuten etcshorewallpolicy teniacutea las siguientes poliacuteticas
SOURCE ZONE DESTINATION ZONE POLICY LOG LIMITBURST LEVELloc net ACCEPTnet all DROP infoall all REJECT info
Importante
El archivo de poliacuteticas de la versioacuten actual estaacute vaciacuteo Usted puede copiar y pegar las entradas anteriores para crear un punto de partida para luego personalizar sus poliacuteticas
Las poliacuteticas anteriores haraacuten que
1 permitiraacute todas las solicitudes de conexiones desde la red local hacia internet2 descartaraacute (ignoraraacute) todas las solicitudes de conexiones desde internet hacia su firewall o red local y se
registra un mensaje a nivel informativo (info level log vea aquiacute la descripcioacuten de los niveles de registro)3 rechaza todas las solicitudes de conexiones y registra un mensaje a nivel informativo Cuando una solicitud
se rechaza el firewall devuelve un RST (si el protocolo es TCP) o un paquete ICMP de puerto-inalcanzabe para los otros protocolos
En este punto edite su archivo etcshorewallpolicy y haga los cambios que desee
Interfaces de Red
Para el resto de esta guiacutea nos referiremos al siguiente diagrama Si bien puede que no luzca como el de su red puede usarse para ilustrar los aspectos importantes de la configuracioacuten Shorewall
En este diagrama
bull La Zona DMZ consiste de los sistemas DMZ 1 y DMZ 2 Una DMZ se usa para aislar su servidors accesibles desde internet de sus sistemas locales tal que si uno de esos servidores estaacute comprometido auacuten tendraacute el firewall entre el sistema comprometido y sus sistemas en la red local
bull La Zona Local consiste de los sistemas Local 1 Local 2 y Local 3bull Todos los sistemas desde el ISP hacia afuera componen la Zona Internet
La forma maacutes cimple de definir zonas es asociar el nombre de la zona (previamente definida en etcshorewallzones) con una interface de red Esto se hace en el archivo etcshorewallinterfaces El firewall ilustrado arriba tiene tres interfaces de red Donde la conectividad hacia Internet es hecha a traveacutes de un cable Modem o DSL la Interface Externa seraacute un adaptador Ethernet que se ecneuntra conectado al Modem (eg eth0) a menos que conecte usando Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta usando un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces desearaacute establecer CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Local seraacute un adaptador Ethernet (eth0 eth1 o eth2) y conectaraacute a un hub o switch Sus computadores locales estaraacuten conectadas al mismo switch o hub (nota Si tiene un uacutenico sistema local puede conectar directamente el firewall al computador utilizando un cable cruzado)
Su Interface DMZ tambieacuten seraacute un adaptador Ethernet (eth0 eth1 o eth2) y se conectaraacute a un hub o switch Sus computadores DMZ seraacuten conectados al mismo switch o hub (nota Si tiene un uacutenico sistema DMZ puede conectar directamente el firewall al computador usando un cable cruzado)
Precaucioacuten
No conecte la interace interna y externa al mismo hub o switch exceptuando para pruebas Y estaacute corriendo Shorewall 147 o superior Cuando use estas versiones recientes puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en el archivo etcshorewallinterfaces para todas las interfaces conectadas al mismo hubswitch No se recomienda utilizar tal configuracioacuten con un firewall de produccioacuten
Para el resto de esta guiacutea asumiremos que
bull La Interface Externa es eth0bull La Interface Local es eth1bull La Interface DMZ es eth2
La cinfiguracioacuten Shorewall por omisioacuten no define el contenido de ninguna zona Para definir la configuracioacuten de arriba usando el archivo etcshorewallinterfaces dicho archivo contendriacutea
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectdmz eth2 detect
Note que la zona $FW no tiene una entrada en el archvio etcshorewallinterfaces
Edite el archivo etcshorewallinterfaces y defina las interfaces de red de su firewall asociadas con su zona Si tiene una zona disponible a traveacutes de maacutes de una interface de red simplemente incluya una entrada para cada interface y repita el nombre de zona tantas veces como haga falta con su respectiva interface de red
Ejemplo 1 Muacuteltiples Interfaces hacia una Zona
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectloc eth2 detect
Usted puede definir zonas maacutes complicadas usando el archivo etcshorewallhosts pero en la mayoriacutea de los casos ello no es necesario Vea Shorewall_and_Aliased_Interfaceshtml y Multiple_Zoneshtml para algunos ejemplos
Direccionamiento Subredes y Enrutamiento
Normalmente su ISP le asignaraacute un conjunto de direcciones IP Puacuteblicas Usted configuraraacute su interface externa de su firewall para que use una de dichas direcciones permanentemente y entonces tendraacute que decidir como usaraacute el resto de sus direcciones Antes de que contestemos esta pregunta es conveniente primero revisar los fundamentos
Si usted estaacute ampliamente familiarizado con el direccionamiento IP y el enrutamiento puede ir directo a la proacutexima seccioacuten
La siguiente discusioacuten revisa someramente el direccionamiento y el enrutamiento IP Si estaacute interesado en aprender maacutes acerca del tema le recomendaos ampliamente ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0
Direcciones IP
Las direcciones IP versioacuten 4 (IPv4) son nuacutemeros de 32 -bits La notacioacuten wxyz refiere a una direccioacuten donde el byte de orden superior tiene el valor ldquowrdquo el proacuteximo byte tiene el valor ldquoxrdquo etc Si tomamos la direccioacuten 1920214 y la expresamos en hexadecimal obtenemos
C000020E
o viacuteendolo como un entero de 32-bits
C000020E
Subredes
Usted comenzaraacute a escuchar los teacuterminos ldquored Clase Ardquo ldquored Clase B y red Clase C En los primeros diacuteas de IP las redes veniacutean en tres tamantildeos (existiacutea tambieacuten redes Clase D pero era usada de forma diferente)
Clase A - maacutescara de red 255000 size = 2 24Clase B - maacutescara de red 25525500 size = 2 16
Clase C - maacutescara de red 2552552550 size = 256
La clase de una red era determinada uniacutevocamente por el valor del byte superior de su direccioacuten tal que usted pudiera ver la direccioacuten IP e inmediatamente determinara la maacutescara asociada La maacutescara de red es un nuacutemero que cuando se aplica un Y loacutegico con la direccioacuten separa la direccioacuten de red del resto que es la direccioacuten de host Por ejemplo la direccioacuten Clase C 1920214 la direccioacuten de red es el hexadecimal C00002 y el nuacutemero de host es 0E
En la medida que internet crecioacute se hizo claro que tal particionamiento tan grueso de direcciones de 32-bits iva a ser muy limitante (iexclPreviamente a las grandes corporaciones y universidades le fueron asignadas sus propias redes clase A) Despueacutes de unos arranques en falso la teacutecnica de subredes evolucionoacute al sistema actual de redes maacutes pequentildeas la teacutecnica se le refiere como Classless InterDomain Routing (CIDR) Hoy diacutea cualquier sistema que usted probablemente use entenderaacute CIDR y las redes basadas en clases son ya algo del pasado
Una subred es un conjunto contiguo de direcciones IP tal que
1 La cantidad de direcciones en el conjunto es una potencia de 2 y2 La primera direccioacuten en el conjunto es un muacuteltiplo del tamantildeo del conjunto3 La primera direccioacuten en la subred se reserva y se le refiere como la direccioacuten de subred4 La uacutetima direccioacuten en la subred estaacute reservada como la direccioacuten de difusioacuten(broadcast) de la subred
Como puede ver por definicioacuten en cada subred de tamantildeo n hay (n - 2) direcciones utilizables (direcciones que se pueden asignar a maacutequinas) La primera y uacuteltima direccioacuten en la subred son utilizadas como direccioacuten de la subred y direccioacuten de difusioacuten respectivamente En consecuencia las subredes maacutes pequentildeas desperdician maacutes direcciones IP que las redes maacutes grandes
Ya que n es una potencia de dos faacutecilmente podemos calcular el Logaritmo-Base2 (log2) de n Para los tamantildeos maacutes comunes de subred el tamantildeo y su logaritmos base 2 son dados por la siguiente tabla
Tabla 1 Logaritmos Base-2
n log2 n (32 - log2 n)
8 3 29
16 4 28
32 5 27
64 6 26
128 7 25
256 8 24
512 9 23
1024 10 22
2048 11 21
4096 12 20
8192 13 19
16384 14 18
32768 15 17
65536 16 16
Notaraacute que la tabla arriba tambieacuten contiene una columna parar (32 - log2 n) Este nuacutemero es la Variable Length Subnet Mask (VLSM) para una red de tamantildeo n De la tabla arriba podemos derivar la siguiente que es un poco maacutes faacutecil de usar
Tabla 2 VLSM
Subnet Size VLSM Subnet Mask
8 29 255255255248
16 28 255255255240
32 27 255255255224
64 26 255255255192
128 25 255255255128
256 24 2552552550
512 23 2552552540
1024 22 2552552520
2048 21 2552552480
4096 20 2552552400
8192 19 2552552240
16384 18 2552551920
32768 17 2552551280
65536 16 25525500
2 24 8 255000
Note que la VLSM se escribe con barra (ldquordquo) -- a menudo escucharaacute de una subred de tamantildeo 64 referida como una subred ldquobarra 26rdquo y una de tamantildeo 8 referida como de ldquobarra 29rdquo
La maacutescara de subred es simplemente un nuacutemero de 32 bits con los primeros ldquoVLSMrdquo bits puestos a uno y los remanentes bits puestos a cero Por ejemplo para una subred de tamantildeo 64 la maacutescara de subred tiene los primeros 26 bits en uno
11111111111111111111111111000000 = FFFFFFC0 = FFFFFFC0 = 255255255192
La maacutescara de subred tiene la propiedad de que si se hace un Y loacutegico con una direccioacuten en la subred el resultado es la direccioacuten de la subred Igual de importante si hace un Y loacutegico de la maacutescara de subre con una direccioacuten fuera de la subred el resultado NO es la direccioacuten de la subred Como ya veremos esta propiedad de la maacutescara de subred es muy uacutetil para el enrutamiento
Para una subred cuya direccioacuten es abcd y cuyo Variable Length Subnet Mask es v denotamos la subred como ldquoabcdvrdquo usando Notacioacuten CIDR Ejemplo
Tabla 3 Subred
Subred 1010100 - 101010127
Tamantildeo Subred 128
Direccioacuten Subred 1010100
Direccioacuten Difusioacuten 101010127
Notacioacuten CIDR 101010025
Existen dos subredes degeneradas que merecen ser nombradas la subred con un miembro y la subre con 2 32 miembros
Tabla 4 32 y 0
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
Es MUY simplesoacutelo ponlo en un nuevo CD y reinicia -) De hecho soacutelo bromeo ligeramenteasiacute es exactamente como actualizo mis firewalls de produccioacuten La facilidad de respaldo parcial que agregue a Dachstein permite que los datos de configuracioacuten sean almacenados separadamente del resto del paquete
Una vez que los datos de configuracioacuten estaacuten separados del resto del paquete es faacutecil actualizar el paquete mientras mantiene su configuracioacuten actual (en mi caso insertando un CD y reiniciando)
Los usuarios que no estaacuten corriendo con muacuteltiples rutas de paquetes y usan respaldos parciales tambieacuten pueden actualizar un paquete soacutelo toma un poco maacutes de trabajo La idea general es usar el respaldo parcial para salvar su configuracioacuten remplazar el paquete y restaurar sus viejos archivos de configuracioacuten Instrucciones paso-a-paso para una forma de hacer esto (asumiendo un sistema convencional de un-floppy LEAF) seriacutea
bull Haga una copia de respaldo de su disco de firewall (NUEVO) Este es el disco al que agregaraacute el paquete actualizado
bull Dele formato a un floppy para usarlo como ubicacioacuten temporal para sus archivos de configuracioacuten (XFER) Este disco deberiacutea tener el mismo formato que el disco del firewall (y simplemente pudiera ser simplemente otra copia de respaldo de firewall actual)
bull Aseguacuterese de tener una copia qeu funcione de su fierwall (VIEJO) en alguacuten lugar seguro que NO usaraacute durante este proceso De esta forma si algo sale mal usted simplemente reinicia con el disco VIEJO para volver a una configuracioacuten que funciona
bull Remueva su disco actual de configuracioacuten de firewall y remplaacutecelo con el disco XFERbull Use el menuacute de respaldo lrcfg para ahcer un respaldo parcial del paquete que desea actualizar estando
seguros acerca de los archivos en el disco XFER A partir del menuacute de respaldo
t e ltentergt p ltentergtb ltpackage1gt ltentergtb ltpackage2gt ltentergt
bull Descargue y copie el paquete que desea actualizar en el disco NUEVObull Reinicie su firewall usando el disco NUEVOen este punto su actualizacioacuten tendraacute su configuracioacuten por
omisioacutenbull Monte el disco XFER (mount -t msdos devfd0u1680 mnt)bull CD al directorio raiacutez (cd )bull Extraiga manualmente los datos de configuracioacuten para cada paquete que actualizoacute
tar -xzvf mntpackage1lrptar -xzvf mntpackage2lrp
bull Desmonte (umount mnt) y retire el disco XFERbull Usando lrcfg haga respaldos FULL de sus paquetes actualizadosbull Reinicie verificando que el firewall funciona como se espera Algunos archivos de configuracioacuten puede que
necesiten ser entonados para que funcionen apropiadamente con los binarios actualizados del paquete
Importante
El nuevo archivo paquete ltpaquetegtlocal puede usar para entonar cuaacuteles archivos estaacuten incluidos (y excluidos) del respaldo parcial (vea el Dachstein-CD README para maacutes detalles) Si este archivo no existe los guiones de respaldo asumiraacuten que cualquier cosa del archivo ltpackagegtlist que reside en etc o varliblrpkg es parte de los datos de configuracioacuten y se usa para crear el respaldo parcial Si Shorewall pone algo en etc que no sea un archivo de configuracioacuten modificado por el usuario deberiacutea crearse un archivo apropiado shorwalllocal antes de hacer el respaldo parcial [Nota del Editor Shorewall coloca soacutelo archivos modificables por el usuario en etc]
Nota
Es obviamente posible hacer lo anterior en-sitio sin usar muacuteltiples discos e incluso sin hacer respaldos parciales (ie copiar archivos de configuracioacuten actuales a tmp manualmente extraer el nuevo paquete sobre el firewall que estaacute corriendo luego copiar o fusionar los datos desde tmp yo respaldoo similar) pero para cualquiera que sea capaz de toda esa gimnasia en la liacutenea de comandos es probable que lo pueda hacer sin ninguacuten tipo de instrucciones detalladas -)
Para maacutes informacioacuten de otras herramientas de actualizacioacuten LEAFBering mire en este artiacuteculo de Alex Rhomberg
Configurando Shorewall
Usted necesitaraacute editar algunos o todos los archivos de configuracioacuten para lograr la configuracioacuten deseada En la mayoriacutea de los casos las Guiacuteas Raacutepidas de Shorewall contienen toda la informacioacuten que usted necesita para comenzar
DesinstalarVolverAtraacutes
Vea ldquoVolverAtraacutes y Desinstalarrdquo
Firewall Baacutesico Dos-Interfaces
Introduccioacuten
El configurar un sistema Linux como firewall para una red pequentildea es relativamente una tarea simple si entiende los principios baacutesicos y sigue la documentacioacuten
Esta guiacutea no intenta profundizar en todas las facilidades de Shorewall A cambio se enfoca en lo que se requiere para configurar Shorewall en su configuracioacuten maacutes comuacuten
bull Sistema Linux usado como firewallrouter para una red local pequentildeabull Un uacutenica direccioacuten IP puacuteblica Si tiene maacutes de una direccioacuten IP puacuteblica esta no es la guiacutea que desea -- vea
la Guiacutea de Configuracioacuten de Shorewall bull Conexioacuten Internet por cable modem DSL ISDN Frame Relay discada
Aquiacute se muestra un esquemaacutetico de una instalacioacuten tiacutepica
Figura 1 Configuracioacuten comuacuten de firewall con dos interfaces
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windowstrade usted salvarlos como archivos Unixtrade si su editor soporta esta opcioacuten o debe pasarlo por el programa dos2unix antes de intentar de usarlos De forma similar si copia un archivo de configuracioacuten del disco duro en Windowstrade a un disco flexible debe pasarlos por dos2unix antes de usarlos con Shorewall
bull Versioacuten Windows trade de dos2unix bull Versioacuten Linux de dos2unix
Requerimientos de Sistema
Shorewall requiere que tenga instalado el paquete iprouteiproute2 (en RedHattrade el paquete se llama iproute) Usted puede saber si este paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando which para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se le recomienda primero leer a lo largo de la guiacutea para familiarizarse con los toacutepicos involucrados para luego volver sobre ella y hacer los cambios de configuracioacuten
Convenciones
Los puntos en los cuales se recomiendan cambios de configuracioacuten estaacuten sentildealadas
Las notas de configuracioacuten que son uacutenicas de LEAFBering estaacute marcadas con
PPTPADSL
Si tiene un Modem ADSL y usa PPTP para comunicarse con un servidor en ese modem usted debe hacer los cambios que se recomiendan aquiacute en adicioacuten a los que se explican abajo ADSL con PPTP se encuentra frecuentemente en Europa y notable Austria
Conceptos Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall -- para configuraciones simples encontraraacute que soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea
Alerta
Nota para los Usuarios Debian
Si instala usando deb encontraraacute que su directorio etcshorewall estaacute vaciacuteo Esto es intencional El esqueleto de archivos de configuracioacuten se pueden encontrar en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no planea modificarlos
Importante
Despueacutes que tiene instalado Shorewall localice las muestras two-interfaces
1 Si instaloacute usando RPM las muestras estaraacuten en el subdirectorio Samplestwo-interfaces del directorio de documentacioacuten de Shorewall Si no sabe donde estaacute el directorio de documentacioacuten Shorewall puede encontrarlo usando el siguiente comando
~ rpm -ql shorewall | fgrep two-interfacesusrsharedocpackagesshorewallSamplestwo-interfacesusrsharedocpackagesshorewallSamplestwo-interfacesinterfacesusrsharedocpackagesshorewallSamplestwo-interfacesmasqusrsharedocpackagesshorewallSamplestwo-interfacespolicyusrsharedocpackagesshorewallSamplestwo-interfacesroutestoppedusrsharedocpackagesshorewallSamplestwo-interfacesrulesusrsharedocpackagesshorewallSamplestwo-interfaceszones~
2 Si instaloacute usando el tarball las muestras estaacuten en el directorio Samplestwo-interfaces en el tarball3 Si instaloacute usando deb las muestras estaacuten en usrsharedocshorewallexamplestwo-interfaces
En la medida que se explica cada archivo le sugerimos que vea el archivo en cuestioacuten en su sistema -- cada archivo contiene instrucciones detallads de configuracioacuten y entradas por omisioacuten
Shorewall ve la red sobre la cual trabaja como si estuviera compuesta de un conjunto de zonas En la configuracioacuten de muestra two-interface se usan los siguientes nombres de zonas
ZONE TYPE OPTIONS IN OUT OPTIONS OPTIONSfw firewallnet ipv4loc ipv4
Las zonas se definen en el archivo etcshorewallzones
Note que Shorewall reconoce el sistema firewall como su propia zona - cuando se procesa el archivo etcshorewallzones el nombre de la zona firewall se almacena en la variable shell $FW que puede usarse para referirse a la zona del firewall a lo largo de la configuracioacuten de Shorewall
Las reglas acerca del traacutefico a permitir o rechazar se expresan en teacuterminos de zonas
bull Usted expresa su poliacutetica por omisioacuten para las conexiones desde una zona a otra en el archivo etcshorewallpolicy
bull Usted define excepciones para dichas poliacuteticas por omisioacuten en el archivo etcshorewallrules
Para cada solicitud de conexioacuten que ingresa al firewall la solicitud se verifica primero contra el archivo etcshorewllrules Si no aplica ninguna regla para la solicitud de conexioacuten entonces la primera poliacutetica en etcshorewallpolicy que coincida se aplica Si hay una accioacuten comuacuten definida para la poliacutetica en etcshorewallactions o usrshareshorewallactionsstd entonces esa accioacuten se ejecuta antes de la poliacutetica
El archivo etcshorewallpolicy que se incluye con la muestra two-interface tiene las siguientes poliacuteticas
SOURCE DEST POLICY LOG LEVEL LIMITBURSTloc net ACCEPTnet all DROP infoall all REJECT info
En la muestra two-interface la liacutenea abajo estaacute incluida pero estaacute comentada Si desea que su sistema firewall tenga acceso completo a los servidores en internet quite el comentario a esa liacutenea
SOURCE DEST POLICY LOG LEVEL LIMITBURST$FW net ACCEPT
Las poliacuteticas anteriores
bull Permitiraacuten todas las solicitudes de conexiones desde la red local hacia internetbull Desacartaacuten (ignoraraacuten) todas las solicitudes de conexioacuten desde internet hacia su firewall o red localbull Opcionalmente aceptar todas las solicitudes de conexiones desde el firewall hacia internet (si levantoacute el
comentario de la poliacutetica adicional)bull Rechazaraacuten todas las otras solicitudes de conexioacuten
Es importante notar que las poliacuteticas Shorewal (y las reglas) refieren a conexiones y no flujo de paquetes Con las poliacuteticas definidas en el archivo etcshorewallpolicy como se muestra arriba las conexiones se permiten desde la zona loc a la zona net incluso aunque no esten permitidas las conexiones desde la zona loc al propio firewall
En este punto edite su etcshorewallpolicy y haga los cambios que considere
Interfaces de Red
El firewall tiene dos interfaces de red Donde si bien la conectividad es a traveacutes de cable modem o Modem DSL la Interface Externa seraacute el adaptador ethernet que se encuentre conectado a dicho Modem (eg eth0) a menos que conecte viacutea Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta por un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces querraacute poner CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Interna seraacute un adaptador ethernet (eth1 o eth0) y conectaraacute a un hub o switch Sus computadores se conectaraacuten al mismo hubswitch (nota Si tiene un uacutenico sistema interno puede conectarlo directamente al firewall usando un cable cruzado)
Alerta
No conecte la interface interna y externa al mismo hub o switch exceptuado para pruebas Usted puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en etcshorewallinterfaces para todas las interfaces comunes al mismo hubswitch Usando tal configuracioacuten con un firewall en produccioacuten no es para nada recomendable
La muestra two-interface de Shorewall asume que la interface externa es eth0 y que la interface interna es eth1 Si su configuracioacuten difiere tendraacute que modificar la muesta acordemente en el archivo etcshorewallinterfaces Mientra esteacute ahiacute puede revisar la lista de opciones que le son especiacuteficas para las interfaces Algunas pistas
Tip
Si su interface externa es ppp0 o ippp0 puede remplazar en la segunda columna detect con ldquo-rdquo (sin las comillas)
Tip
Si su interface externa es ppp0 o ippp0 o si tiene una direccioacuten IP estaacutetica puede eliminar dhcp de la lista de opciones
Tip
Si su interface interna es un puente (bridge) cree If your internal interface is a bridge create using the brctl utility then you must add the routeback option to the option list
Direcciones IP
Antes de seguir avanzando debemos decir unas cuantas palabras acerca de las direcciones Internet Protocol (IP) Normalmente su ISP le asignaraacute una uacutenica direccioacuten IP Puacuteblica Esta direccioacuten puede ser asignada viacutea Dynamic Host Configuration Protocol (DHCP) o como parte del establecimiento de su conexioacuten cuando disca (modem estandar) o establece su conexioacuten PPP En raras ocasiones su ISP le asignaraacute una direccioacuten IP estaacutetica esto significa que usted configuraraacute la interface exerna de su firewall para usar permanentemente esa direccioacuten Sin embargo su direccioacuten IP asignada seraacute compartida por todos sus sistemas cuando accedan a Internet Usted tendraacute que asignar sus propias direcciones en su red interna (la Interface Interna en su firewall maacutes las otras computadores) El RFC 1918 reserva varios rangos de direcciones Privadas IP para ese propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Antes de arrancar Shoreall usted debe ver la direccioacuten IP de su interface externa y si es una dentro de los rangos descritos arriba deberiacutea quitar la opcioacuten norfc1918 de la entrada que corresponde a su interface externa en etcshorewallinterfaces
Usted querraacute asignar sus direcciones desde la misma subred Para nuestros propoacutesitos podemos considerar una subred que consista de un rango de direcciones xyz0 - xyz255 Tal subred tendraacute una maacutescara de red de 2552552550 La direccioacuten xyz0 se reserva como la Direccioacuten de Subred y xyz255 se reserva como la Direccioacuten de Difusioacuten de la Subred (Boradcast) En Shorewall una subred se describe usando la notacioacuten Classless InterDomain Routing (CIDR) que consiste de direcciones de subred seguida de 24 El ldquo24rdquo se refiere a la cantidad de 1 consecutivos a la cabeza de la maacutescara de red
Rango 1010100 - 101010255
Direccioacuten de Subred 1010100
Direccioacuten de Difusioacuten 101010255
Notacioacuten CIDR 101010024
Es convencioacuten asignarle la primera direccioacuten utilizable en la subred a la interface interna (1010101 en el ejemplo anterior) o la uacuteltima (101010254)
Uno de los propoacutesitos de hacer subredes es permitir a todas las computadoras en la subred entender queacute otras computadoras pueden comunicarse con ellas directamente Para comunicarse con sistemas fuera de la subre los sistemas deben enviar los paquetes a su detino final a traveacutes de un gateway (enrutador)
Sus computadoras locales (computer 1 y computer 2 en el diagrama arriba) deben ser configuradas con el default gateway a la direccioacuten IP de la interface interna del firewall
La discusioacuten a continuacioacuten repasa por encima los temas de subredes y enrutamiento Si estaacute interesado en aprender maacutes acerca del direccionamiento y el enrutamiento IP si le recomienda altamente el libro ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0 (enlace)
El resto de esta guiacutea asume que tiene su red dispuesta de esta forma
El default gateway para las computdores 1 y 2 seriacutea 101010254
Alerta
Su ISP puede que le asigne una direccioacuten RFC 1918 para su interface externa Si dicha direccioacuten estaacute en la subred 101010024 entonces tendraacute que seleccionar una subred DIFERENTE RFC 1918 para su red local
Enmascaramiento IP (SNAT)
Las direcciones reservadas por el RFC 1918 son a veces referidas como no-ruteable debido a que los enrutadores en el corazoacuten de Internet no se renviacutean los paquetes IP cuando tienen como destino una direccioacuten RFC 1918 Cuando uno de su sistemas locales (digamos computer 1) enviacutea una solicitud de conexioacuten a una maacutequina en Internet el firewall debe hacer Network Address Translation (NAT Traduccioacuten de Direccioacuten de Red) El firewall rescribe la direccioacuten de origen en el paquete para que sea la direccioacuten de la interface externa del firewall en otras palabras el
firewall hace parecer que la solicitud de conexioacuten fueacute originada en el propio firewall Esto es necesario hacerlo para la maaacutequina destino sea capaz de enrutar la respuesta de vuelta hasta el firewall (recuerde que los paquetes cuyos destinos es una direccioacuten RFC 1918 no son enrutados a traveacutes de internet para que la respuesta vuelva su origen en computer 1) Cuando el firewall recibe un paquete de respuesta rescribe la direccioacuten de destino de vuelta a 1010101 y enviacutea el paquete a computer 1
En los sistemas Linux el proceso anterior es conocido como Enmascaramiento IP pero tambieacuten veraacute el uso del teacutermino Source Network Address Translation (SNAT) Shorewall sigue la convencioacuten que usa Netfilter
bull Enmascaramiento (Masquerade) describe el caso donde se permite al sistema firewall detectar automaacuteticamente la direccioacuten de la interface externa
bull SNAT se refiere al caso donde expliacutecitamente especifica la direccioacuten origen que desea usar en los paquetes salientes
En Shorewall tanto Enmascaramiento y SNAT se configuran con entradas en el archivo etcshorewallmasq Normalmente usaraacute Enmascaramiento si su direccioacuten IP en la interface externa es dinaacutemica y SNAT en el caso de direccioacuten IP estaacutetica
Si la interface externa de su firewall es eth0 no se necesita modificar el archivo provisto con la muestra De otra forma edite etcshorewallmasq y cambie la primera columna para que refleje el nombre de su interface externa y la segunda columna el nombre de su interface interna
Si su direccioacuten IP externa es estaacutetica puede enterarla en la tercrea columna en etcshorewallmasq si desea si bien su firewall funcionaraacute bien si no lo hace Enterar su direccioacuten IP estaacutetica en la tercera columna hace que procesar los paquetes salientes sea un poco maacutes eficiente
Si estaacute usando el paquete Debian por favor revise su archivo shorewallconf para asegurarse que lo siguiente esteacute escrito correctamente si no es asiacute caacutembielo apropiadamente
bull IP_FORWARDING=On
Desviacuteo de Puerto (DNAT)
Una de sus metas puede ser correr uno o mas servidores en sus sistemas locales Ya que dichas computadoras tienen direcciones RFC-1918 no es posible a los clientes en internet conectar directamente con ellas En cambio es necesario para dichos clientes dirigir sus solicitudes de conexioacuten hacia el firewall quien rescribe la direccioacuten destino a la direccioacuten de su servidor y enviacutea el paquete al servidor Cuando su servidor responde el firewall automaacuteticamente realiza SNAT para rescribir la direccioacuten origen en la respuesta
El proceso anterior es llamado Desviacuteo de Puerto o Port Forwarding o Destination Network Address Translation (DNAT) Usted puede configurar el desviacuteo de puerto usando las reglas DNAT en el archivo etcshorewallrules
La forma general de una regla de desviacuteo de puerto simple en etcshorewallrules es
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net locltserver local ip addressgt[ltserver portgt] ltprotocolgt ltportgt
Shorewall incorpora macros para muchas de las aplicaciones populares Revise en usrshareshorewallmacro para identificar los macros disponibles en su versioacuten Los macros simplemente crean reglas DNAT suministrando el protocolo y puerto(s) como se muestra en los siguientes ejemplos
Ejemplo 1 Servidor Web
Usted estaacute corriendo un Servidor Web en computer 2 y desea desviar el puerto entrante TCP 80 a este sistema
ACTION SOURCE DEST PROTO DEST PORT(S)WebDNAT net loc1010102
Ejemplo 2 Servidor FTP
Usted estaacute corriendo un Servidor FTP en computer 1 tal que desea entonces desviar el puerto entrante TCP 21 a ese sistema
ACTION SOURCE DEST PROTO DEST PORT(S)FTPDNAT net loc1010101
Para FTP necesitaraacute adicionalmente el motor de seguimiento de conexiones y el soporte NAT en su kernel Para los kernel provistos por el vendedor esto significa que los moacutedulos ip_conntrack_ftp y ip_nat_ftp deben ser cargados Shorewall cargaraacute automaacuteticamente dichos moacutedulos si estaacuten disponibles y localizados en el lugar estandar bajo libmodulesltkernel versiongtkernelnetipv4netfilter
Un par de puntos importantes a mantener en mente son
bull Usted debe probar la regla anterior desde un cliente externe a su red local (ie no pruebe desde un explorador en los computadores 1 o 2 o en el firewall) Si desea ser capaz de acceder a su servidor web yo ftp desde adentro de su fireall usando la direccioacuten IP de su interface externa vea Shorewall FAQ 2
bull Muchos ISPs bloquean las solicitudes entrantes al puerto 80 Si tiene problemas conectaacutendose a su servidor intente seguir la siguiente regla y conectar al puerto 5000
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net loc101010280 tcp 5000
En este punto modifique etcshorewallrules para agregar cualquier regla DNAT que se requiera
Importante
Cuando pruebe las reglas DNAT como las anteriores debe realizar las pruebas desde un cliente AFUERA de su fiewall (en la zona net ) Usted no puede probar estas reglas desde la parte interior del firewall
Para tips de Resolucioacuten de Problemas con DNAT vea FAQs 1a y 1b
Domain Name Server (DNS)
Normalmente cuando usted conecta con su ISP y como parte del proceso de obtener una direccioacuten IP el resolutor Domain Name Service (DNS) del firewall seraacute automaacuteticamente configurado (eg el archivo etcresolvconf seraacute rescrito) Alternativamente su ISP puede darle la direccioacuten IP de un par de servidores de nombre DNS para que manualmente los configure como servidores de nombre primario y secundario respectivamente Sin importar la forma en coacutemo se configuran los servidores DNS en su firewall es su responsabilidad configurar el resolutor en sus sistemas internos Puede escoger uno de dos caminos
bull Configura sus sistemas internos para que usen los servidores de nombre de su ISP Si su ISP le ha suministrado las direcciones de sus servidores DNS o de otros disponibles en su sitio web usted puede configurar sus sistemas internos para que usen dichas direcciones Si dicha informacioacuten no estaacute disponible vea en el archivo etcresolvconf de su sistema firewall -- los servidores de nombre son declarados con los registros nameserver en este archivo
bull Puede configurar un Cache Servidor de Nombres en su firewall Red Hattrade tiene un RPM para el cache servidor de nombres (el RPM tambieacuten requier el RPM bind) y para los usuarios Bering hay un dnscachelrp Si toma este camino usted configuraraacute sus sistemas internos para que usen el mismo firewall como su servidor primario (o uacutenico) de nombres Usariacutea la direccioacuten IP interna de su firewall (101010254 en el ejemplo anterior) como direccioacuten del servidor de nombres Para permitir a los sistemas locales hablar con el cache servidor de nombre deberaacute abrir el puerto 53 (ambos UDP y TCP) desde la red local hacia el firewall esto lo hace agregar las siguientes reglas en etcshorewallrules
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT loc $FW
Otras Conexiones
La muestra two-interface incluye las siguientes reglas
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT $FW net
Esta regla permite el acceso DNS desde su firewall y puede quitarse si ha quitado el comentario en la liacutenea de etcshorewallpolicy que permite todas las conexiones desde el firewall hacia internet
En la regla que se muestra arriba ldquoDNSACCEPTrdquo es un ejemplo de una invocacioacuten macro Shorewall incluye una cantidad de macros (vea usrshareshorewallmacro) y usted puede agregar los suyos
Usted no tiene que usar los macros cuando codifique las reglas en etcshorewallrules Shorewall arrancaraacute ligeramente maacutes raacutepido si codifica sus reglas directamente en vez de usar macros La regla anterior tambieacuten pudo haber sido codificada asiacute
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW net udp 53ACCEPT $FW net tcp 53
En los casos donde Shorewall no incluya un macro que satisfaga sus necesidades puede ya sea definir un nuevo macro o simplemente codificar las reglas apropiadas directamente
La muestra tambieacuten incluye
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT loc $FW
Esta regla permite correr el servidor SSH en su firewall y conectarse a eacutel desde los sistemas locales
Si desea habilitar otras conexiones desde su firewall a otros sistemas el formato general usando macros es
ACTION SOURCE DEST PROTO DEST PORT(S)ltmacrogtACCEPT $FW ltdestination zonegt
El formato general cuando no se usan macros predefinidos es
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW ltdestination zonegt ltprotocolgt ltportgt
Ejemplo 3 Servidor Web en el Firewall
Usted desea correr un servidor Web en su sistema firewall
ACTION SOURCE DEST PROTO DEST PORT(S)WebACCEPT net $FWWebACCEPT loc $FW
Estas dos reglas por supuesto seriacutean un agregado a las reglas listadas arriba bajo ldquoPuede configurar un Cache Servidor de Nombres en su firewall rdquo
Si no sabe queacute puerto y protcolo usa una aplicacioacuten particular mire aquiacute
Importante
No recomendados habilitar telnet desdehacia internet porque usa texto en claro para su comunicacioacuten (incluso para el login) Si desea acceso shell para su firewall desde Internet use SSH
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT net $FW
Los usuarios Bering querraacuten agregar las siguientes dos reglas para ser compatibles con la configuracioacuten Shorewall de Jacques
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT loc $FW udp 53 Allow DNS Cache to workACCEPT loc $FW tcp 80 Allow Weblet to work
Ahora edite su archivo etcshorewallrules para agregar o eliminar otras conexiones como se necesario
Algunos Concejos a Mantener en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque enviacutee solicitudes de conexioacuten a la direccioacuten IP de la interface externa de su firewall no significa que la solicitud seraacute asociada con la interface externa o con la zona ldquonetrdquo Cualquier traacutefico que se genere desde la red local seraacute asociado con su interface local y seraacute tratado como traacutefico loc-gtfw
bull Las direcciones IP son propiedades de los sistemas no de las interfaces Es un error pensar que su firewall sea capaz de renviar paquetes soacutelo porque puede hacerle ping a la direccioacuten IP de todas las interfaces IP del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping exitoso es que el enlace entre el sistema local y el firewall funciona bien y que probablemente tenga bien configurado el default gateway del sistema local
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zonas loc poniendo una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO necesariamente siguen automaacuteticamente el camino reverso al tomado por el paquete original de solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso en su camino Este tema usualmente salta a la palestra cuando se instala un firewall Shorewallall en paralelo a un gateway existente y se intenta usar DNAT a traveacutes del Shorewall sin cambiar el default gateway en el sistema que recibe la solicitud renviada Las solicitudes
entraraacuten por el firewall Shorewall donde la direccioacuten IP destino es rescrita pero la respuesta sale sin modificacioacuten por medio del gateway antiguo
bull Shorewall no tiene nocioacuten de adentro o afuera por siacute mismo Estos conceptos se incorporan en el coacutemo se configura Shorewall
Arrancando y Deteniendo Su Firewall
El procedimiento de instalacioacuten configura su sistema para arrancar Shorewall al arrancar (boot) el sistema pero el inicio de Shorewall estaacute deshabilitado por omisioacuten en su configuracioacuten asiacute que no intente arrancar su Shorewall hasta que termine la configuracioacuten Una vez que se hay completado la configuracioacuten de su firewall debe editar su etcshorewallshorewallconf y poner STARTUP_ENABLED=Yes
Importante
Los usuarios del paquete deb deben editar etcdefaultshorewall y poner startup=1
El firewall se arranca usando el comando ldquoshorewall startrdquo y se detiene con el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado para aquellas maacutequinas que tengan una entrada en el archivo etcshorewallroutestopped Un firewall detenido debe ser reiniciado usando el comando ldquoshorewall restartrdquo Si desea eliminar totalmente todo rastro de Shorewall de su configuracioacuten Netfilter use el comando ldquoshorewall clearrdquo
Esta muestra two-interface asume que usted desea habilitar el enrutamiento desdehacia eth1 (la red local) cuando Shorewall estaacute detenido Si su red local no estaacute conectada a eth1 o si desea habilitar el acceso desdehacia otras maacutequinas cambie apropiadamente el archivo etcshorewallroutestopped
Alerta
Si usted estaacute conectado a su firewall desde internet no enviacutee el comando ldquoshorewall stoprdquo a menos que haya agregado una entrada con la direccioacuten IP desde donde se conectoacute al archivo etcshorewallroutestopped Tampoco recomendamos usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarla con el comando ldquoshorewall tryrdquo
Lectura Adicional Recomendada
Se le recomienda altamente la paaacutegina Archivo de Facilidades de Configuracioacuten Comunes -- contiene tips uacutetiles acerca de las facilidades Shorewall que hacen maacutes faacutecil la administracioacuten del firewall Shorewall
Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
Una vez que tiene su arreglo de dos interfaces funcionando el siguiente paso loacutegico es agregar una conexioacuten de red inalaacutembrica El primer paso es agergar la tarjeta de red adicional a su firewall ya sea una tarjeta inalaacutembirca o una tarjeta ethernet que conecte a un punto de acceso inalaacutembirco
Precaucioacuten
Cuando agrega una tarjeta de red eacutesta no seraacute necesariamente detectada como la siguiente interface ethernet superior Por ejemplo si tiene dos interfaces ethernet en su sistema (eth0 and eth1) y agrega una tercera tarjeta que usa el mismo manejador (driver) de alguna de las dos anteriores la tercera no necesariamente seraacute detectada como eth2 mal pudiera ser detectada como eth0 o eth1 Usted puede ya sea vivir con ello o puede intercambiar las tarjetas en los soacutecates hasta que la nueva tarjeta sea detectada como eth2
Su nuevo arreglo de red luciraacute similar a la figura siguiente
La primera cosa notable es que las computadores en su red inalaacutembrica estan en una subred diferente a los de su red cableada en la LAN En el ejemplo de arriba hemos escogido usar la red 101011024 Las computadoras 3 y 4 seriacutean configuradas con la direccioacuten IP del default gateway IP a 101011254
Segundo hemos escogido incluir la red inalaacutembrica como parte de la zona local Ya que Shorewall permite el traacutefico en-la-zona por omisioacuten el traacutefico puede fluir libremente entre la red cableada local y la red inalaacutembrica
Hay soacutelo dos cambios necesarios para nuestra configuracioacuten Shorewall
bull Se necesita agregar una entrada a etcshorewallinterfaces para la interface de red inalaacutembrica Si la interface inalaacutembrica es wlan0 la entrada puede lucir asiacute
ZONE INTERFACE BROADCAST OPTIONSloc wlan0 detect maclist
Como se muestra en la entrada anterior se recomienda usar la opcioacuten maclist para el segmento inalaacutembrico En paralelo agregue las entradas para las computadoras 3 y 4 en etcshorewallmaclist para prevenir que sus vecinos obtengan una conexioacuten gratuita a internet a sus expensas Comience por omitir esta opcioacuten cuando tenga todo funcionando entonces agregue esta opcioacuten y configure su archivo etcshorewallmaclist
bull Usted necesita agregar una entrada al archivo etcshorewallmasq para enmascarar el traacutefico desde la red inalaacutembrica hacia internet Si su interface hacia internet es eth0 y su interface inalaacutembrica es wlan0 la entrada seriacutea asiacute
INTERFACE SUBNET ADDRESSeth0 wlan0
Otra cosa a notar para poner la red de Microsofttrade a funcionar entre las redes inalaacutembrica y cableada necesitaraacute ya sea un servidor WINS o un PDC Yo personalmente uso Samba configurado como servidor WINS corriendo en mi firewall Correr un servidor WINS en el firewall requiere las reglas que se listan en documentacioacuten ShorewallSamba
Guiacutea de Configuracioacuten de Shorewall
Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
Precaucioacuten
Este artiacuteculo aplica a Shorewall 30 en adelante Si estaacute corriendo una versioacuten previa de Shorewall 300 entonces por favor vea la documentacioacuten para dicha liberacioacuten
Introduccioacuten
Esta guiacutea estaacute destinada a los usuarios que desean configurar Shorewall en entornos donde un conjunto de direcciones IP puacuteblicas deben ser manejadas Para quienes desean conocer maacutes acerca de Shorewall en otros entornos revise las Guiacuteas Raacutepidas de Shorewall Debido a las amplias diferentes posibles aplicaciones la Guiacutea le daraacute directrices y apuntaraacute hacia otros recursos si ello es necesario
Precaucioacuten
Shorewall requiere el paquete iprouteiproute2 instalado (en RedHat el paquete se llama iproute) Usted puede saber si el paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando ldquowhichrdquo para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se recomienda que primero lea la guiacutea para que se familiarice con lo que estaacute involucrado y luego vuelva hacia atraacute y comience sobre los cambios de configuracioacuten requeridos Los puntos donde se recomiendan cambios de
configuracioacuten se sentildealan con
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windows usted debe salvarlos como archivos Unix si su editor soporta dicha opcioacuten o debe ejecutar dicho archivo con dos2unix antes de usarlo con Shorewall De forma similar si copia un archivo de configuracioacuten desde su disco duro en Windows a un disco flexible debe ejecutar previamente dos2unix contra la copia antes de usarla con Shorewall
bull Enlace a versioacuten Windows de dos2unix httpwwwsimtelnetpubpd51438html bull Enlace a versioacuten Linux de dos2unix httpwwwmegalomancom7Ehanysoftwarehd2u
Conceptos de Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall para la mayoriacutea de las configuraciones soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea El esqueleto de archivos de configuracioacuten es creado durante el Proceso de Instalacioacuten de Shorewall
Alerta
Nota para los Usuarios Debian
Si instala usando un deb encontraraacute que el directorio etcshorewall estaacute vaciacuteo Esto es intencional Los archivos del esqueleto correspondientes a la liberacioacuten correspondiente pueden encotrarse en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no los modifica
En la medida que introducimos cada archivo sugerimos que revise dicho archivo en su sistema cada archivo contiene instrucciones detalladas de configuracioacuten
Shorewall ve la red donde estaacute corriendo como si estuviera compuesta de un conjunto de zonas En esta guiacutea usaremos las siguientes zonas
fw
El propio sistema firewall
net
La red puacuteblica Internet
loc
La red local privada que usa direcciones IP privadas
dmz
Una Zona Desmilitarizada que aloja servidores de acceso puacuteblico
Las zonas se definen en el archivo etcshorewallzones
Importante
El archivo etcshorewallzones incluiacutedo en la distribucioacuten estaacute vaciacuteo Usted puede crear el conjunto de zonas estandar descritas anteriormente copiando y pegando el siguiente contenido en dicho archivo
ZONE TYPE OPTIONSfw firewallnet ipv4loc ipv4dmz ipv4
Note que Shorewall reconoce al sistema firewall como su propia zona El ejemplo anterior sigue la convencioacuten usual de nombres zona firewall fw El nombre especificado para la zona firewall (fw en el ejemplo anterior) se almacena en la variable shell $FW cuando se procesa el archivo etcshorewallzones Con la excepcioacuten del nombre asignado a la zona firewall Shorewall no asocia ninguacuten significado especial a los nombes de zona Las zonas son lo que USTED hace de ellas Ello significa que no debe esperar que Shorewall haga algo especial porque esta es la zona interna o porque esta es la zona DMZ
Edite el archivo etcshorewallzones y haga los cambios necesarios
La reglas acerca de queacute traacutefico permitir y negar se expresan en teacuterminos de las zonas
bull Usted expresa la poliacutetica por omisioacuten para conexiones desde una a otra zona en el archivo etcshorewallpolicy
bull Usted define excepciones a dichas poliacuteticas en etcshorewallrules
Shorewall se construye sobre el motor de kernel Netfilter Netfilter implementa la funcioacuten de seguimiento de conexiones que permite lo que se denomina como inspeccioacuten por estado (stateful inspection) de paquetes Esta capacidad de manejar los estados permite que las reglas de firewall sean definidas en teacuterminos de conexiones en vez de paquetes Con Shorewall usted
1 Identifica la zona origen (cliente)2 Identifica la zona destino (servidor)3 Si la POLITICA de la zona cliente a la zona servidor es lo que desea para esta pareja clienteservidor no
necesita hacer nada adicional4 Si la POLITICA no es lo que desea entonces debe agregar una regla La regla se expresa en teacuterminos de la
zona del cliente y de la zona del servidor
Soacutelo porque las conexiones de un tipo particular desde la zona A hacia el firewall estaacuten permitidas y que tambieacuten estaacuten permitidas desde el firewall a la zona B NO sigifica que estas conexiones esten permitidas entre la zona A y la zona B (en otras palabras las poliacuteticas y reglas que involucran a la zona firewall no son transitivas) A cambio significa que usted puede tener un proxy corriendo en el firewall que acepta conexiones desde la zona A y luego establece conexiones separadas por siacute mismo desde el firewall hacia la zona B
Para cada solicitud de conexioacuten que entra al firewall la solicitud se chequea primero contra el archivo etcshorewallrules Si ninguna regla del archivo aplica se aplica a la solicitud de conexioacuten la primera poliacutetica en etcshorewallpolicy que corresponda con dicha solicitud despueacutes de que haya pasado por la accioacuten comuacuten apropiada (si existe alguna)
Previo a Shorewall 220 el archivo por omisioacuten etcshorewallpolicy teniacutea las siguientes poliacuteticas
SOURCE ZONE DESTINATION ZONE POLICY LOG LIMITBURST LEVELloc net ACCEPTnet all DROP infoall all REJECT info
Importante
El archivo de poliacuteticas de la versioacuten actual estaacute vaciacuteo Usted puede copiar y pegar las entradas anteriores para crear un punto de partida para luego personalizar sus poliacuteticas
Las poliacuteticas anteriores haraacuten que
1 permitiraacute todas las solicitudes de conexiones desde la red local hacia internet2 descartaraacute (ignoraraacute) todas las solicitudes de conexiones desde internet hacia su firewall o red local y se
registra un mensaje a nivel informativo (info level log vea aquiacute la descripcioacuten de los niveles de registro)3 rechaza todas las solicitudes de conexiones y registra un mensaje a nivel informativo Cuando una solicitud
se rechaza el firewall devuelve un RST (si el protocolo es TCP) o un paquete ICMP de puerto-inalcanzabe para los otros protocolos
En este punto edite su archivo etcshorewallpolicy y haga los cambios que desee
Interfaces de Red
Para el resto de esta guiacutea nos referiremos al siguiente diagrama Si bien puede que no luzca como el de su red puede usarse para ilustrar los aspectos importantes de la configuracioacuten Shorewall
En este diagrama
bull La Zona DMZ consiste de los sistemas DMZ 1 y DMZ 2 Una DMZ se usa para aislar su servidors accesibles desde internet de sus sistemas locales tal que si uno de esos servidores estaacute comprometido auacuten tendraacute el firewall entre el sistema comprometido y sus sistemas en la red local
bull La Zona Local consiste de los sistemas Local 1 Local 2 y Local 3bull Todos los sistemas desde el ISP hacia afuera componen la Zona Internet
La forma maacutes cimple de definir zonas es asociar el nombre de la zona (previamente definida en etcshorewallzones) con una interface de red Esto se hace en el archivo etcshorewallinterfaces El firewall ilustrado arriba tiene tres interfaces de red Donde la conectividad hacia Internet es hecha a traveacutes de un cable Modem o DSL la Interface Externa seraacute un adaptador Ethernet que se ecneuntra conectado al Modem (eg eth0) a menos que conecte usando Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta usando un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces desearaacute establecer CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Local seraacute un adaptador Ethernet (eth0 eth1 o eth2) y conectaraacute a un hub o switch Sus computadores locales estaraacuten conectadas al mismo switch o hub (nota Si tiene un uacutenico sistema local puede conectar directamente el firewall al computador utilizando un cable cruzado)
Su Interface DMZ tambieacuten seraacute un adaptador Ethernet (eth0 eth1 o eth2) y se conectaraacute a un hub o switch Sus computadores DMZ seraacuten conectados al mismo switch o hub (nota Si tiene un uacutenico sistema DMZ puede conectar directamente el firewall al computador usando un cable cruzado)
Precaucioacuten
No conecte la interace interna y externa al mismo hub o switch exceptuando para pruebas Y estaacute corriendo Shorewall 147 o superior Cuando use estas versiones recientes puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en el archivo etcshorewallinterfaces para todas las interfaces conectadas al mismo hubswitch No se recomienda utilizar tal configuracioacuten con un firewall de produccioacuten
Para el resto de esta guiacutea asumiremos que
bull La Interface Externa es eth0bull La Interface Local es eth1bull La Interface DMZ es eth2
La cinfiguracioacuten Shorewall por omisioacuten no define el contenido de ninguna zona Para definir la configuracioacuten de arriba usando el archivo etcshorewallinterfaces dicho archivo contendriacutea
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectdmz eth2 detect
Note que la zona $FW no tiene una entrada en el archvio etcshorewallinterfaces
Edite el archivo etcshorewallinterfaces y defina las interfaces de red de su firewall asociadas con su zona Si tiene una zona disponible a traveacutes de maacutes de una interface de red simplemente incluya una entrada para cada interface y repita el nombre de zona tantas veces como haga falta con su respectiva interface de red
Ejemplo 1 Muacuteltiples Interfaces hacia una Zona
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectloc eth2 detect
Usted puede definir zonas maacutes complicadas usando el archivo etcshorewallhosts pero en la mayoriacutea de los casos ello no es necesario Vea Shorewall_and_Aliased_Interfaceshtml y Multiple_Zoneshtml para algunos ejemplos
Direccionamiento Subredes y Enrutamiento
Normalmente su ISP le asignaraacute un conjunto de direcciones IP Puacuteblicas Usted configuraraacute su interface externa de su firewall para que use una de dichas direcciones permanentemente y entonces tendraacute que decidir como usaraacute el resto de sus direcciones Antes de que contestemos esta pregunta es conveniente primero revisar los fundamentos
Si usted estaacute ampliamente familiarizado con el direccionamiento IP y el enrutamiento puede ir directo a la proacutexima seccioacuten
La siguiente discusioacuten revisa someramente el direccionamiento y el enrutamiento IP Si estaacute interesado en aprender maacutes acerca del tema le recomendaos ampliamente ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0
Direcciones IP
Las direcciones IP versioacuten 4 (IPv4) son nuacutemeros de 32 -bits La notacioacuten wxyz refiere a una direccioacuten donde el byte de orden superior tiene el valor ldquowrdquo el proacuteximo byte tiene el valor ldquoxrdquo etc Si tomamos la direccioacuten 1920214 y la expresamos en hexadecimal obtenemos
C000020E
o viacuteendolo como un entero de 32-bits
C000020E
Subredes
Usted comenzaraacute a escuchar los teacuterminos ldquored Clase Ardquo ldquored Clase B y red Clase C En los primeros diacuteas de IP las redes veniacutean en tres tamantildeos (existiacutea tambieacuten redes Clase D pero era usada de forma diferente)
Clase A - maacutescara de red 255000 size = 2 24Clase B - maacutescara de red 25525500 size = 2 16
Clase C - maacutescara de red 2552552550 size = 256
La clase de una red era determinada uniacutevocamente por el valor del byte superior de su direccioacuten tal que usted pudiera ver la direccioacuten IP e inmediatamente determinara la maacutescara asociada La maacutescara de red es un nuacutemero que cuando se aplica un Y loacutegico con la direccioacuten separa la direccioacuten de red del resto que es la direccioacuten de host Por ejemplo la direccioacuten Clase C 1920214 la direccioacuten de red es el hexadecimal C00002 y el nuacutemero de host es 0E
En la medida que internet crecioacute se hizo claro que tal particionamiento tan grueso de direcciones de 32-bits iva a ser muy limitante (iexclPreviamente a las grandes corporaciones y universidades le fueron asignadas sus propias redes clase A) Despueacutes de unos arranques en falso la teacutecnica de subredes evolucionoacute al sistema actual de redes maacutes pequentildeas la teacutecnica se le refiere como Classless InterDomain Routing (CIDR) Hoy diacutea cualquier sistema que usted probablemente use entenderaacute CIDR y las redes basadas en clases son ya algo del pasado
Una subred es un conjunto contiguo de direcciones IP tal que
1 La cantidad de direcciones en el conjunto es una potencia de 2 y2 La primera direccioacuten en el conjunto es un muacuteltiplo del tamantildeo del conjunto3 La primera direccioacuten en la subred se reserva y se le refiere como la direccioacuten de subred4 La uacutetima direccioacuten en la subred estaacute reservada como la direccioacuten de difusioacuten(broadcast) de la subred
Como puede ver por definicioacuten en cada subred de tamantildeo n hay (n - 2) direcciones utilizables (direcciones que se pueden asignar a maacutequinas) La primera y uacuteltima direccioacuten en la subred son utilizadas como direccioacuten de la subred y direccioacuten de difusioacuten respectivamente En consecuencia las subredes maacutes pequentildeas desperdician maacutes direcciones IP que las redes maacutes grandes
Ya que n es una potencia de dos faacutecilmente podemos calcular el Logaritmo-Base2 (log2) de n Para los tamantildeos maacutes comunes de subred el tamantildeo y su logaritmos base 2 son dados por la siguiente tabla
Tabla 1 Logaritmos Base-2
n log2 n (32 - log2 n)
8 3 29
16 4 28
32 5 27
64 6 26
128 7 25
256 8 24
512 9 23
1024 10 22
2048 11 21
4096 12 20
8192 13 19
16384 14 18
32768 15 17
65536 16 16
Notaraacute que la tabla arriba tambieacuten contiene una columna parar (32 - log2 n) Este nuacutemero es la Variable Length Subnet Mask (VLSM) para una red de tamantildeo n De la tabla arriba podemos derivar la siguiente que es un poco maacutes faacutecil de usar
Tabla 2 VLSM
Subnet Size VLSM Subnet Mask
8 29 255255255248
16 28 255255255240
32 27 255255255224
64 26 255255255192
128 25 255255255128
256 24 2552552550
512 23 2552552540
1024 22 2552552520
2048 21 2552552480
4096 20 2552552400
8192 19 2552552240
16384 18 2552551920
32768 17 2552551280
65536 16 25525500
2 24 8 255000
Note que la VLSM se escribe con barra (ldquordquo) -- a menudo escucharaacute de una subred de tamantildeo 64 referida como una subred ldquobarra 26rdquo y una de tamantildeo 8 referida como de ldquobarra 29rdquo
La maacutescara de subred es simplemente un nuacutemero de 32 bits con los primeros ldquoVLSMrdquo bits puestos a uno y los remanentes bits puestos a cero Por ejemplo para una subred de tamantildeo 64 la maacutescara de subred tiene los primeros 26 bits en uno
11111111111111111111111111000000 = FFFFFFC0 = FFFFFFC0 = 255255255192
La maacutescara de subred tiene la propiedad de que si se hace un Y loacutegico con una direccioacuten en la subred el resultado es la direccioacuten de la subred Igual de importante si hace un Y loacutegico de la maacutescara de subre con una direccioacuten fuera de la subred el resultado NO es la direccioacuten de la subred Como ya veremos esta propiedad de la maacutescara de subred es muy uacutetil para el enrutamiento
Para una subred cuya direccioacuten es abcd y cuyo Variable Length Subnet Mask es v denotamos la subred como ldquoabcdvrdquo usando Notacioacuten CIDR Ejemplo
Tabla 3 Subred
Subred 1010100 - 101010127
Tamantildeo Subred 128
Direccioacuten Subred 1010100
Direccioacuten Difusioacuten 101010127
Notacioacuten CIDR 101010025
Existen dos subredes degeneradas que merecen ser nombradas la subred con un miembro y la subre con 2 32 miembros
Tabla 4 32 y 0
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
Nota
Es obviamente posible hacer lo anterior en-sitio sin usar muacuteltiples discos e incluso sin hacer respaldos parciales (ie copiar archivos de configuracioacuten actuales a tmp manualmente extraer el nuevo paquete sobre el firewall que estaacute corriendo luego copiar o fusionar los datos desde tmp yo respaldoo similar) pero para cualquiera que sea capaz de toda esa gimnasia en la liacutenea de comandos es probable que lo pueda hacer sin ninguacuten tipo de instrucciones detalladas -)
Para maacutes informacioacuten de otras herramientas de actualizacioacuten LEAFBering mire en este artiacuteculo de Alex Rhomberg
Configurando Shorewall
Usted necesitaraacute editar algunos o todos los archivos de configuracioacuten para lograr la configuracioacuten deseada En la mayoriacutea de los casos las Guiacuteas Raacutepidas de Shorewall contienen toda la informacioacuten que usted necesita para comenzar
DesinstalarVolverAtraacutes
Vea ldquoVolverAtraacutes y Desinstalarrdquo
Firewall Baacutesico Dos-Interfaces
Introduccioacuten
El configurar un sistema Linux como firewall para una red pequentildea es relativamente una tarea simple si entiende los principios baacutesicos y sigue la documentacioacuten
Esta guiacutea no intenta profundizar en todas las facilidades de Shorewall A cambio se enfoca en lo que se requiere para configurar Shorewall en su configuracioacuten maacutes comuacuten
bull Sistema Linux usado como firewallrouter para una red local pequentildeabull Un uacutenica direccioacuten IP puacuteblica Si tiene maacutes de una direccioacuten IP puacuteblica esta no es la guiacutea que desea -- vea
la Guiacutea de Configuracioacuten de Shorewall bull Conexioacuten Internet por cable modem DSL ISDN Frame Relay discada
Aquiacute se muestra un esquemaacutetico de una instalacioacuten tiacutepica
Figura 1 Configuracioacuten comuacuten de firewall con dos interfaces
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windowstrade usted salvarlos como archivos Unixtrade si su editor soporta esta opcioacuten o debe pasarlo por el programa dos2unix antes de intentar de usarlos De forma similar si copia un archivo de configuracioacuten del disco duro en Windowstrade a un disco flexible debe pasarlos por dos2unix antes de usarlos con Shorewall
bull Versioacuten Windows trade de dos2unix bull Versioacuten Linux de dos2unix
Requerimientos de Sistema
Shorewall requiere que tenga instalado el paquete iprouteiproute2 (en RedHattrade el paquete se llama iproute) Usted puede saber si este paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando which para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se le recomienda primero leer a lo largo de la guiacutea para familiarizarse con los toacutepicos involucrados para luego volver sobre ella y hacer los cambios de configuracioacuten
Convenciones
Los puntos en los cuales se recomiendan cambios de configuracioacuten estaacuten sentildealadas
Las notas de configuracioacuten que son uacutenicas de LEAFBering estaacute marcadas con
PPTPADSL
Si tiene un Modem ADSL y usa PPTP para comunicarse con un servidor en ese modem usted debe hacer los cambios que se recomiendan aquiacute en adicioacuten a los que se explican abajo ADSL con PPTP se encuentra frecuentemente en Europa y notable Austria
Conceptos Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall -- para configuraciones simples encontraraacute que soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea
Alerta
Nota para los Usuarios Debian
Si instala usando deb encontraraacute que su directorio etcshorewall estaacute vaciacuteo Esto es intencional El esqueleto de archivos de configuracioacuten se pueden encontrar en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no planea modificarlos
Importante
Despueacutes que tiene instalado Shorewall localice las muestras two-interfaces
1 Si instaloacute usando RPM las muestras estaraacuten en el subdirectorio Samplestwo-interfaces del directorio de documentacioacuten de Shorewall Si no sabe donde estaacute el directorio de documentacioacuten Shorewall puede encontrarlo usando el siguiente comando
~ rpm -ql shorewall | fgrep two-interfacesusrsharedocpackagesshorewallSamplestwo-interfacesusrsharedocpackagesshorewallSamplestwo-interfacesinterfacesusrsharedocpackagesshorewallSamplestwo-interfacesmasqusrsharedocpackagesshorewallSamplestwo-interfacespolicyusrsharedocpackagesshorewallSamplestwo-interfacesroutestoppedusrsharedocpackagesshorewallSamplestwo-interfacesrulesusrsharedocpackagesshorewallSamplestwo-interfaceszones~
2 Si instaloacute usando el tarball las muestras estaacuten en el directorio Samplestwo-interfaces en el tarball3 Si instaloacute usando deb las muestras estaacuten en usrsharedocshorewallexamplestwo-interfaces
En la medida que se explica cada archivo le sugerimos que vea el archivo en cuestioacuten en su sistema -- cada archivo contiene instrucciones detallads de configuracioacuten y entradas por omisioacuten
Shorewall ve la red sobre la cual trabaja como si estuviera compuesta de un conjunto de zonas En la configuracioacuten de muestra two-interface se usan los siguientes nombres de zonas
ZONE TYPE OPTIONS IN OUT OPTIONS OPTIONSfw firewallnet ipv4loc ipv4
Las zonas se definen en el archivo etcshorewallzones
Note que Shorewall reconoce el sistema firewall como su propia zona - cuando se procesa el archivo etcshorewallzones el nombre de la zona firewall se almacena en la variable shell $FW que puede usarse para referirse a la zona del firewall a lo largo de la configuracioacuten de Shorewall
Las reglas acerca del traacutefico a permitir o rechazar se expresan en teacuterminos de zonas
bull Usted expresa su poliacutetica por omisioacuten para las conexiones desde una zona a otra en el archivo etcshorewallpolicy
bull Usted define excepciones para dichas poliacuteticas por omisioacuten en el archivo etcshorewallrules
Para cada solicitud de conexioacuten que ingresa al firewall la solicitud se verifica primero contra el archivo etcshorewllrules Si no aplica ninguna regla para la solicitud de conexioacuten entonces la primera poliacutetica en etcshorewallpolicy que coincida se aplica Si hay una accioacuten comuacuten definida para la poliacutetica en etcshorewallactions o usrshareshorewallactionsstd entonces esa accioacuten se ejecuta antes de la poliacutetica
El archivo etcshorewallpolicy que se incluye con la muestra two-interface tiene las siguientes poliacuteticas
SOURCE DEST POLICY LOG LEVEL LIMITBURSTloc net ACCEPTnet all DROP infoall all REJECT info
En la muestra two-interface la liacutenea abajo estaacute incluida pero estaacute comentada Si desea que su sistema firewall tenga acceso completo a los servidores en internet quite el comentario a esa liacutenea
SOURCE DEST POLICY LOG LEVEL LIMITBURST$FW net ACCEPT
Las poliacuteticas anteriores
bull Permitiraacuten todas las solicitudes de conexiones desde la red local hacia internetbull Desacartaacuten (ignoraraacuten) todas las solicitudes de conexioacuten desde internet hacia su firewall o red localbull Opcionalmente aceptar todas las solicitudes de conexiones desde el firewall hacia internet (si levantoacute el
comentario de la poliacutetica adicional)bull Rechazaraacuten todas las otras solicitudes de conexioacuten
Es importante notar que las poliacuteticas Shorewal (y las reglas) refieren a conexiones y no flujo de paquetes Con las poliacuteticas definidas en el archivo etcshorewallpolicy como se muestra arriba las conexiones se permiten desde la zona loc a la zona net incluso aunque no esten permitidas las conexiones desde la zona loc al propio firewall
En este punto edite su etcshorewallpolicy y haga los cambios que considere
Interfaces de Red
El firewall tiene dos interfaces de red Donde si bien la conectividad es a traveacutes de cable modem o Modem DSL la Interface Externa seraacute el adaptador ethernet que se encuentre conectado a dicho Modem (eg eth0) a menos que conecte viacutea Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta por un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces querraacute poner CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Interna seraacute un adaptador ethernet (eth1 o eth0) y conectaraacute a un hub o switch Sus computadores se conectaraacuten al mismo hubswitch (nota Si tiene un uacutenico sistema interno puede conectarlo directamente al firewall usando un cable cruzado)
Alerta
No conecte la interface interna y externa al mismo hub o switch exceptuado para pruebas Usted puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en etcshorewallinterfaces para todas las interfaces comunes al mismo hubswitch Usando tal configuracioacuten con un firewall en produccioacuten no es para nada recomendable
La muestra two-interface de Shorewall asume que la interface externa es eth0 y que la interface interna es eth1 Si su configuracioacuten difiere tendraacute que modificar la muesta acordemente en el archivo etcshorewallinterfaces Mientra esteacute ahiacute puede revisar la lista de opciones que le son especiacuteficas para las interfaces Algunas pistas
Tip
Si su interface externa es ppp0 o ippp0 puede remplazar en la segunda columna detect con ldquo-rdquo (sin las comillas)
Tip
Si su interface externa es ppp0 o ippp0 o si tiene una direccioacuten IP estaacutetica puede eliminar dhcp de la lista de opciones
Tip
Si su interface interna es un puente (bridge) cree If your internal interface is a bridge create using the brctl utility then you must add the routeback option to the option list
Direcciones IP
Antes de seguir avanzando debemos decir unas cuantas palabras acerca de las direcciones Internet Protocol (IP) Normalmente su ISP le asignaraacute una uacutenica direccioacuten IP Puacuteblica Esta direccioacuten puede ser asignada viacutea Dynamic Host Configuration Protocol (DHCP) o como parte del establecimiento de su conexioacuten cuando disca (modem estandar) o establece su conexioacuten PPP En raras ocasiones su ISP le asignaraacute una direccioacuten IP estaacutetica esto significa que usted configuraraacute la interface exerna de su firewall para usar permanentemente esa direccioacuten Sin embargo su direccioacuten IP asignada seraacute compartida por todos sus sistemas cuando accedan a Internet Usted tendraacute que asignar sus propias direcciones en su red interna (la Interface Interna en su firewall maacutes las otras computadores) El RFC 1918 reserva varios rangos de direcciones Privadas IP para ese propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Antes de arrancar Shoreall usted debe ver la direccioacuten IP de su interface externa y si es una dentro de los rangos descritos arriba deberiacutea quitar la opcioacuten norfc1918 de la entrada que corresponde a su interface externa en etcshorewallinterfaces
Usted querraacute asignar sus direcciones desde la misma subred Para nuestros propoacutesitos podemos considerar una subred que consista de un rango de direcciones xyz0 - xyz255 Tal subred tendraacute una maacutescara de red de 2552552550 La direccioacuten xyz0 se reserva como la Direccioacuten de Subred y xyz255 se reserva como la Direccioacuten de Difusioacuten de la Subred (Boradcast) En Shorewall una subred se describe usando la notacioacuten Classless InterDomain Routing (CIDR) que consiste de direcciones de subred seguida de 24 El ldquo24rdquo se refiere a la cantidad de 1 consecutivos a la cabeza de la maacutescara de red
Rango 1010100 - 101010255
Direccioacuten de Subred 1010100
Direccioacuten de Difusioacuten 101010255
Notacioacuten CIDR 101010024
Es convencioacuten asignarle la primera direccioacuten utilizable en la subred a la interface interna (1010101 en el ejemplo anterior) o la uacuteltima (101010254)
Uno de los propoacutesitos de hacer subredes es permitir a todas las computadoras en la subred entender queacute otras computadoras pueden comunicarse con ellas directamente Para comunicarse con sistemas fuera de la subre los sistemas deben enviar los paquetes a su detino final a traveacutes de un gateway (enrutador)
Sus computadoras locales (computer 1 y computer 2 en el diagrama arriba) deben ser configuradas con el default gateway a la direccioacuten IP de la interface interna del firewall
La discusioacuten a continuacioacuten repasa por encima los temas de subredes y enrutamiento Si estaacute interesado en aprender maacutes acerca del direccionamiento y el enrutamiento IP si le recomienda altamente el libro ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0 (enlace)
El resto de esta guiacutea asume que tiene su red dispuesta de esta forma
El default gateway para las computdores 1 y 2 seriacutea 101010254
Alerta
Su ISP puede que le asigne una direccioacuten RFC 1918 para su interface externa Si dicha direccioacuten estaacute en la subred 101010024 entonces tendraacute que seleccionar una subred DIFERENTE RFC 1918 para su red local
Enmascaramiento IP (SNAT)
Las direcciones reservadas por el RFC 1918 son a veces referidas como no-ruteable debido a que los enrutadores en el corazoacuten de Internet no se renviacutean los paquetes IP cuando tienen como destino una direccioacuten RFC 1918 Cuando uno de su sistemas locales (digamos computer 1) enviacutea una solicitud de conexioacuten a una maacutequina en Internet el firewall debe hacer Network Address Translation (NAT Traduccioacuten de Direccioacuten de Red) El firewall rescribe la direccioacuten de origen en el paquete para que sea la direccioacuten de la interface externa del firewall en otras palabras el
firewall hace parecer que la solicitud de conexioacuten fueacute originada en el propio firewall Esto es necesario hacerlo para la maaacutequina destino sea capaz de enrutar la respuesta de vuelta hasta el firewall (recuerde que los paquetes cuyos destinos es una direccioacuten RFC 1918 no son enrutados a traveacutes de internet para que la respuesta vuelva su origen en computer 1) Cuando el firewall recibe un paquete de respuesta rescribe la direccioacuten de destino de vuelta a 1010101 y enviacutea el paquete a computer 1
En los sistemas Linux el proceso anterior es conocido como Enmascaramiento IP pero tambieacuten veraacute el uso del teacutermino Source Network Address Translation (SNAT) Shorewall sigue la convencioacuten que usa Netfilter
bull Enmascaramiento (Masquerade) describe el caso donde se permite al sistema firewall detectar automaacuteticamente la direccioacuten de la interface externa
bull SNAT se refiere al caso donde expliacutecitamente especifica la direccioacuten origen que desea usar en los paquetes salientes
En Shorewall tanto Enmascaramiento y SNAT se configuran con entradas en el archivo etcshorewallmasq Normalmente usaraacute Enmascaramiento si su direccioacuten IP en la interface externa es dinaacutemica y SNAT en el caso de direccioacuten IP estaacutetica
Si la interface externa de su firewall es eth0 no se necesita modificar el archivo provisto con la muestra De otra forma edite etcshorewallmasq y cambie la primera columna para que refleje el nombre de su interface externa y la segunda columna el nombre de su interface interna
Si su direccioacuten IP externa es estaacutetica puede enterarla en la tercrea columna en etcshorewallmasq si desea si bien su firewall funcionaraacute bien si no lo hace Enterar su direccioacuten IP estaacutetica en la tercera columna hace que procesar los paquetes salientes sea un poco maacutes eficiente
Si estaacute usando el paquete Debian por favor revise su archivo shorewallconf para asegurarse que lo siguiente esteacute escrito correctamente si no es asiacute caacutembielo apropiadamente
bull IP_FORWARDING=On
Desviacuteo de Puerto (DNAT)
Una de sus metas puede ser correr uno o mas servidores en sus sistemas locales Ya que dichas computadoras tienen direcciones RFC-1918 no es posible a los clientes en internet conectar directamente con ellas En cambio es necesario para dichos clientes dirigir sus solicitudes de conexioacuten hacia el firewall quien rescribe la direccioacuten destino a la direccioacuten de su servidor y enviacutea el paquete al servidor Cuando su servidor responde el firewall automaacuteticamente realiza SNAT para rescribir la direccioacuten origen en la respuesta
El proceso anterior es llamado Desviacuteo de Puerto o Port Forwarding o Destination Network Address Translation (DNAT) Usted puede configurar el desviacuteo de puerto usando las reglas DNAT en el archivo etcshorewallrules
La forma general de una regla de desviacuteo de puerto simple en etcshorewallrules es
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net locltserver local ip addressgt[ltserver portgt] ltprotocolgt ltportgt
Shorewall incorpora macros para muchas de las aplicaciones populares Revise en usrshareshorewallmacro para identificar los macros disponibles en su versioacuten Los macros simplemente crean reglas DNAT suministrando el protocolo y puerto(s) como se muestra en los siguientes ejemplos
Ejemplo 1 Servidor Web
Usted estaacute corriendo un Servidor Web en computer 2 y desea desviar el puerto entrante TCP 80 a este sistema
ACTION SOURCE DEST PROTO DEST PORT(S)WebDNAT net loc1010102
Ejemplo 2 Servidor FTP
Usted estaacute corriendo un Servidor FTP en computer 1 tal que desea entonces desviar el puerto entrante TCP 21 a ese sistema
ACTION SOURCE DEST PROTO DEST PORT(S)FTPDNAT net loc1010101
Para FTP necesitaraacute adicionalmente el motor de seguimiento de conexiones y el soporte NAT en su kernel Para los kernel provistos por el vendedor esto significa que los moacutedulos ip_conntrack_ftp y ip_nat_ftp deben ser cargados Shorewall cargaraacute automaacuteticamente dichos moacutedulos si estaacuten disponibles y localizados en el lugar estandar bajo libmodulesltkernel versiongtkernelnetipv4netfilter
Un par de puntos importantes a mantener en mente son
bull Usted debe probar la regla anterior desde un cliente externe a su red local (ie no pruebe desde un explorador en los computadores 1 o 2 o en el firewall) Si desea ser capaz de acceder a su servidor web yo ftp desde adentro de su fireall usando la direccioacuten IP de su interface externa vea Shorewall FAQ 2
bull Muchos ISPs bloquean las solicitudes entrantes al puerto 80 Si tiene problemas conectaacutendose a su servidor intente seguir la siguiente regla y conectar al puerto 5000
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net loc101010280 tcp 5000
En este punto modifique etcshorewallrules para agregar cualquier regla DNAT que se requiera
Importante
Cuando pruebe las reglas DNAT como las anteriores debe realizar las pruebas desde un cliente AFUERA de su fiewall (en la zona net ) Usted no puede probar estas reglas desde la parte interior del firewall
Para tips de Resolucioacuten de Problemas con DNAT vea FAQs 1a y 1b
Domain Name Server (DNS)
Normalmente cuando usted conecta con su ISP y como parte del proceso de obtener una direccioacuten IP el resolutor Domain Name Service (DNS) del firewall seraacute automaacuteticamente configurado (eg el archivo etcresolvconf seraacute rescrito) Alternativamente su ISP puede darle la direccioacuten IP de un par de servidores de nombre DNS para que manualmente los configure como servidores de nombre primario y secundario respectivamente Sin importar la forma en coacutemo se configuran los servidores DNS en su firewall es su responsabilidad configurar el resolutor en sus sistemas internos Puede escoger uno de dos caminos
bull Configura sus sistemas internos para que usen los servidores de nombre de su ISP Si su ISP le ha suministrado las direcciones de sus servidores DNS o de otros disponibles en su sitio web usted puede configurar sus sistemas internos para que usen dichas direcciones Si dicha informacioacuten no estaacute disponible vea en el archivo etcresolvconf de su sistema firewall -- los servidores de nombre son declarados con los registros nameserver en este archivo
bull Puede configurar un Cache Servidor de Nombres en su firewall Red Hattrade tiene un RPM para el cache servidor de nombres (el RPM tambieacuten requier el RPM bind) y para los usuarios Bering hay un dnscachelrp Si toma este camino usted configuraraacute sus sistemas internos para que usen el mismo firewall como su servidor primario (o uacutenico) de nombres Usariacutea la direccioacuten IP interna de su firewall (101010254 en el ejemplo anterior) como direccioacuten del servidor de nombres Para permitir a los sistemas locales hablar con el cache servidor de nombre deberaacute abrir el puerto 53 (ambos UDP y TCP) desde la red local hacia el firewall esto lo hace agregar las siguientes reglas en etcshorewallrules
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT loc $FW
Otras Conexiones
La muestra two-interface incluye las siguientes reglas
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT $FW net
Esta regla permite el acceso DNS desde su firewall y puede quitarse si ha quitado el comentario en la liacutenea de etcshorewallpolicy que permite todas las conexiones desde el firewall hacia internet
En la regla que se muestra arriba ldquoDNSACCEPTrdquo es un ejemplo de una invocacioacuten macro Shorewall incluye una cantidad de macros (vea usrshareshorewallmacro) y usted puede agregar los suyos
Usted no tiene que usar los macros cuando codifique las reglas en etcshorewallrules Shorewall arrancaraacute ligeramente maacutes raacutepido si codifica sus reglas directamente en vez de usar macros La regla anterior tambieacuten pudo haber sido codificada asiacute
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW net udp 53ACCEPT $FW net tcp 53
En los casos donde Shorewall no incluya un macro que satisfaga sus necesidades puede ya sea definir un nuevo macro o simplemente codificar las reglas apropiadas directamente
La muestra tambieacuten incluye
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT loc $FW
Esta regla permite correr el servidor SSH en su firewall y conectarse a eacutel desde los sistemas locales
Si desea habilitar otras conexiones desde su firewall a otros sistemas el formato general usando macros es
ACTION SOURCE DEST PROTO DEST PORT(S)ltmacrogtACCEPT $FW ltdestination zonegt
El formato general cuando no se usan macros predefinidos es
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW ltdestination zonegt ltprotocolgt ltportgt
Ejemplo 3 Servidor Web en el Firewall
Usted desea correr un servidor Web en su sistema firewall
ACTION SOURCE DEST PROTO DEST PORT(S)WebACCEPT net $FWWebACCEPT loc $FW
Estas dos reglas por supuesto seriacutean un agregado a las reglas listadas arriba bajo ldquoPuede configurar un Cache Servidor de Nombres en su firewall rdquo
Si no sabe queacute puerto y protcolo usa una aplicacioacuten particular mire aquiacute
Importante
No recomendados habilitar telnet desdehacia internet porque usa texto en claro para su comunicacioacuten (incluso para el login) Si desea acceso shell para su firewall desde Internet use SSH
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT net $FW
Los usuarios Bering querraacuten agregar las siguientes dos reglas para ser compatibles con la configuracioacuten Shorewall de Jacques
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT loc $FW udp 53 Allow DNS Cache to workACCEPT loc $FW tcp 80 Allow Weblet to work
Ahora edite su archivo etcshorewallrules para agregar o eliminar otras conexiones como se necesario
Algunos Concejos a Mantener en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque enviacutee solicitudes de conexioacuten a la direccioacuten IP de la interface externa de su firewall no significa que la solicitud seraacute asociada con la interface externa o con la zona ldquonetrdquo Cualquier traacutefico que se genere desde la red local seraacute asociado con su interface local y seraacute tratado como traacutefico loc-gtfw
bull Las direcciones IP son propiedades de los sistemas no de las interfaces Es un error pensar que su firewall sea capaz de renviar paquetes soacutelo porque puede hacerle ping a la direccioacuten IP de todas las interfaces IP del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping exitoso es que el enlace entre el sistema local y el firewall funciona bien y que probablemente tenga bien configurado el default gateway del sistema local
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zonas loc poniendo una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO necesariamente siguen automaacuteticamente el camino reverso al tomado por el paquete original de solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso en su camino Este tema usualmente salta a la palestra cuando se instala un firewall Shorewallall en paralelo a un gateway existente y se intenta usar DNAT a traveacutes del Shorewall sin cambiar el default gateway en el sistema que recibe la solicitud renviada Las solicitudes
entraraacuten por el firewall Shorewall donde la direccioacuten IP destino es rescrita pero la respuesta sale sin modificacioacuten por medio del gateway antiguo
bull Shorewall no tiene nocioacuten de adentro o afuera por siacute mismo Estos conceptos se incorporan en el coacutemo se configura Shorewall
Arrancando y Deteniendo Su Firewall
El procedimiento de instalacioacuten configura su sistema para arrancar Shorewall al arrancar (boot) el sistema pero el inicio de Shorewall estaacute deshabilitado por omisioacuten en su configuracioacuten asiacute que no intente arrancar su Shorewall hasta que termine la configuracioacuten Una vez que se hay completado la configuracioacuten de su firewall debe editar su etcshorewallshorewallconf y poner STARTUP_ENABLED=Yes
Importante
Los usuarios del paquete deb deben editar etcdefaultshorewall y poner startup=1
El firewall se arranca usando el comando ldquoshorewall startrdquo y se detiene con el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado para aquellas maacutequinas que tengan una entrada en el archivo etcshorewallroutestopped Un firewall detenido debe ser reiniciado usando el comando ldquoshorewall restartrdquo Si desea eliminar totalmente todo rastro de Shorewall de su configuracioacuten Netfilter use el comando ldquoshorewall clearrdquo
Esta muestra two-interface asume que usted desea habilitar el enrutamiento desdehacia eth1 (la red local) cuando Shorewall estaacute detenido Si su red local no estaacute conectada a eth1 o si desea habilitar el acceso desdehacia otras maacutequinas cambie apropiadamente el archivo etcshorewallroutestopped
Alerta
Si usted estaacute conectado a su firewall desde internet no enviacutee el comando ldquoshorewall stoprdquo a menos que haya agregado una entrada con la direccioacuten IP desde donde se conectoacute al archivo etcshorewallroutestopped Tampoco recomendamos usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarla con el comando ldquoshorewall tryrdquo
Lectura Adicional Recomendada
Se le recomienda altamente la paaacutegina Archivo de Facilidades de Configuracioacuten Comunes -- contiene tips uacutetiles acerca de las facilidades Shorewall que hacen maacutes faacutecil la administracioacuten del firewall Shorewall
Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
Una vez que tiene su arreglo de dos interfaces funcionando el siguiente paso loacutegico es agregar una conexioacuten de red inalaacutembrica El primer paso es agergar la tarjeta de red adicional a su firewall ya sea una tarjeta inalaacutembirca o una tarjeta ethernet que conecte a un punto de acceso inalaacutembirco
Precaucioacuten
Cuando agrega una tarjeta de red eacutesta no seraacute necesariamente detectada como la siguiente interface ethernet superior Por ejemplo si tiene dos interfaces ethernet en su sistema (eth0 and eth1) y agrega una tercera tarjeta que usa el mismo manejador (driver) de alguna de las dos anteriores la tercera no necesariamente seraacute detectada como eth2 mal pudiera ser detectada como eth0 o eth1 Usted puede ya sea vivir con ello o puede intercambiar las tarjetas en los soacutecates hasta que la nueva tarjeta sea detectada como eth2
Su nuevo arreglo de red luciraacute similar a la figura siguiente
La primera cosa notable es que las computadores en su red inalaacutembrica estan en una subred diferente a los de su red cableada en la LAN En el ejemplo de arriba hemos escogido usar la red 101011024 Las computadoras 3 y 4 seriacutean configuradas con la direccioacuten IP del default gateway IP a 101011254
Segundo hemos escogido incluir la red inalaacutembrica como parte de la zona local Ya que Shorewall permite el traacutefico en-la-zona por omisioacuten el traacutefico puede fluir libremente entre la red cableada local y la red inalaacutembrica
Hay soacutelo dos cambios necesarios para nuestra configuracioacuten Shorewall
bull Se necesita agregar una entrada a etcshorewallinterfaces para la interface de red inalaacutembrica Si la interface inalaacutembrica es wlan0 la entrada puede lucir asiacute
ZONE INTERFACE BROADCAST OPTIONSloc wlan0 detect maclist
Como se muestra en la entrada anterior se recomienda usar la opcioacuten maclist para el segmento inalaacutembrico En paralelo agregue las entradas para las computadoras 3 y 4 en etcshorewallmaclist para prevenir que sus vecinos obtengan una conexioacuten gratuita a internet a sus expensas Comience por omitir esta opcioacuten cuando tenga todo funcionando entonces agregue esta opcioacuten y configure su archivo etcshorewallmaclist
bull Usted necesita agregar una entrada al archivo etcshorewallmasq para enmascarar el traacutefico desde la red inalaacutembrica hacia internet Si su interface hacia internet es eth0 y su interface inalaacutembrica es wlan0 la entrada seriacutea asiacute
INTERFACE SUBNET ADDRESSeth0 wlan0
Otra cosa a notar para poner la red de Microsofttrade a funcionar entre las redes inalaacutembrica y cableada necesitaraacute ya sea un servidor WINS o un PDC Yo personalmente uso Samba configurado como servidor WINS corriendo en mi firewall Correr un servidor WINS en el firewall requiere las reglas que se listan en documentacioacuten ShorewallSamba
Guiacutea de Configuracioacuten de Shorewall
Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
Precaucioacuten
Este artiacuteculo aplica a Shorewall 30 en adelante Si estaacute corriendo una versioacuten previa de Shorewall 300 entonces por favor vea la documentacioacuten para dicha liberacioacuten
Introduccioacuten
Esta guiacutea estaacute destinada a los usuarios que desean configurar Shorewall en entornos donde un conjunto de direcciones IP puacuteblicas deben ser manejadas Para quienes desean conocer maacutes acerca de Shorewall en otros entornos revise las Guiacuteas Raacutepidas de Shorewall Debido a las amplias diferentes posibles aplicaciones la Guiacutea le daraacute directrices y apuntaraacute hacia otros recursos si ello es necesario
Precaucioacuten
Shorewall requiere el paquete iprouteiproute2 instalado (en RedHat el paquete se llama iproute) Usted puede saber si el paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando ldquowhichrdquo para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se recomienda que primero lea la guiacutea para que se familiarice con lo que estaacute involucrado y luego vuelva hacia atraacute y comience sobre los cambios de configuracioacuten requeridos Los puntos donde se recomiendan cambios de
configuracioacuten se sentildealan con
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windows usted debe salvarlos como archivos Unix si su editor soporta dicha opcioacuten o debe ejecutar dicho archivo con dos2unix antes de usarlo con Shorewall De forma similar si copia un archivo de configuracioacuten desde su disco duro en Windows a un disco flexible debe ejecutar previamente dos2unix contra la copia antes de usarla con Shorewall
bull Enlace a versioacuten Windows de dos2unix httpwwwsimtelnetpubpd51438html bull Enlace a versioacuten Linux de dos2unix httpwwwmegalomancom7Ehanysoftwarehd2u
Conceptos de Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall para la mayoriacutea de las configuraciones soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea El esqueleto de archivos de configuracioacuten es creado durante el Proceso de Instalacioacuten de Shorewall
Alerta
Nota para los Usuarios Debian
Si instala usando un deb encontraraacute que el directorio etcshorewall estaacute vaciacuteo Esto es intencional Los archivos del esqueleto correspondientes a la liberacioacuten correspondiente pueden encotrarse en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no los modifica
En la medida que introducimos cada archivo sugerimos que revise dicho archivo en su sistema cada archivo contiene instrucciones detalladas de configuracioacuten
Shorewall ve la red donde estaacute corriendo como si estuviera compuesta de un conjunto de zonas En esta guiacutea usaremos las siguientes zonas
fw
El propio sistema firewall
net
La red puacuteblica Internet
loc
La red local privada que usa direcciones IP privadas
dmz
Una Zona Desmilitarizada que aloja servidores de acceso puacuteblico
Las zonas se definen en el archivo etcshorewallzones
Importante
El archivo etcshorewallzones incluiacutedo en la distribucioacuten estaacute vaciacuteo Usted puede crear el conjunto de zonas estandar descritas anteriormente copiando y pegando el siguiente contenido en dicho archivo
ZONE TYPE OPTIONSfw firewallnet ipv4loc ipv4dmz ipv4
Note que Shorewall reconoce al sistema firewall como su propia zona El ejemplo anterior sigue la convencioacuten usual de nombres zona firewall fw El nombre especificado para la zona firewall (fw en el ejemplo anterior) se almacena en la variable shell $FW cuando se procesa el archivo etcshorewallzones Con la excepcioacuten del nombre asignado a la zona firewall Shorewall no asocia ninguacuten significado especial a los nombes de zona Las zonas son lo que USTED hace de ellas Ello significa que no debe esperar que Shorewall haga algo especial porque esta es la zona interna o porque esta es la zona DMZ
Edite el archivo etcshorewallzones y haga los cambios necesarios
La reglas acerca de queacute traacutefico permitir y negar se expresan en teacuterminos de las zonas
bull Usted expresa la poliacutetica por omisioacuten para conexiones desde una a otra zona en el archivo etcshorewallpolicy
bull Usted define excepciones a dichas poliacuteticas en etcshorewallrules
Shorewall se construye sobre el motor de kernel Netfilter Netfilter implementa la funcioacuten de seguimiento de conexiones que permite lo que se denomina como inspeccioacuten por estado (stateful inspection) de paquetes Esta capacidad de manejar los estados permite que las reglas de firewall sean definidas en teacuterminos de conexiones en vez de paquetes Con Shorewall usted
1 Identifica la zona origen (cliente)2 Identifica la zona destino (servidor)3 Si la POLITICA de la zona cliente a la zona servidor es lo que desea para esta pareja clienteservidor no
necesita hacer nada adicional4 Si la POLITICA no es lo que desea entonces debe agregar una regla La regla se expresa en teacuterminos de la
zona del cliente y de la zona del servidor
Soacutelo porque las conexiones de un tipo particular desde la zona A hacia el firewall estaacuten permitidas y que tambieacuten estaacuten permitidas desde el firewall a la zona B NO sigifica que estas conexiones esten permitidas entre la zona A y la zona B (en otras palabras las poliacuteticas y reglas que involucran a la zona firewall no son transitivas) A cambio significa que usted puede tener un proxy corriendo en el firewall que acepta conexiones desde la zona A y luego establece conexiones separadas por siacute mismo desde el firewall hacia la zona B
Para cada solicitud de conexioacuten que entra al firewall la solicitud se chequea primero contra el archivo etcshorewallrules Si ninguna regla del archivo aplica se aplica a la solicitud de conexioacuten la primera poliacutetica en etcshorewallpolicy que corresponda con dicha solicitud despueacutes de que haya pasado por la accioacuten comuacuten apropiada (si existe alguna)
Previo a Shorewall 220 el archivo por omisioacuten etcshorewallpolicy teniacutea las siguientes poliacuteticas
SOURCE ZONE DESTINATION ZONE POLICY LOG LIMITBURST LEVELloc net ACCEPTnet all DROP infoall all REJECT info
Importante
El archivo de poliacuteticas de la versioacuten actual estaacute vaciacuteo Usted puede copiar y pegar las entradas anteriores para crear un punto de partida para luego personalizar sus poliacuteticas
Las poliacuteticas anteriores haraacuten que
1 permitiraacute todas las solicitudes de conexiones desde la red local hacia internet2 descartaraacute (ignoraraacute) todas las solicitudes de conexiones desde internet hacia su firewall o red local y se
registra un mensaje a nivel informativo (info level log vea aquiacute la descripcioacuten de los niveles de registro)3 rechaza todas las solicitudes de conexiones y registra un mensaje a nivel informativo Cuando una solicitud
se rechaza el firewall devuelve un RST (si el protocolo es TCP) o un paquete ICMP de puerto-inalcanzabe para los otros protocolos
En este punto edite su archivo etcshorewallpolicy y haga los cambios que desee
Interfaces de Red
Para el resto de esta guiacutea nos referiremos al siguiente diagrama Si bien puede que no luzca como el de su red puede usarse para ilustrar los aspectos importantes de la configuracioacuten Shorewall
En este diagrama
bull La Zona DMZ consiste de los sistemas DMZ 1 y DMZ 2 Una DMZ se usa para aislar su servidors accesibles desde internet de sus sistemas locales tal que si uno de esos servidores estaacute comprometido auacuten tendraacute el firewall entre el sistema comprometido y sus sistemas en la red local
bull La Zona Local consiste de los sistemas Local 1 Local 2 y Local 3bull Todos los sistemas desde el ISP hacia afuera componen la Zona Internet
La forma maacutes cimple de definir zonas es asociar el nombre de la zona (previamente definida en etcshorewallzones) con una interface de red Esto se hace en el archivo etcshorewallinterfaces El firewall ilustrado arriba tiene tres interfaces de red Donde la conectividad hacia Internet es hecha a traveacutes de un cable Modem o DSL la Interface Externa seraacute un adaptador Ethernet que se ecneuntra conectado al Modem (eg eth0) a menos que conecte usando Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta usando un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces desearaacute establecer CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Local seraacute un adaptador Ethernet (eth0 eth1 o eth2) y conectaraacute a un hub o switch Sus computadores locales estaraacuten conectadas al mismo switch o hub (nota Si tiene un uacutenico sistema local puede conectar directamente el firewall al computador utilizando un cable cruzado)
Su Interface DMZ tambieacuten seraacute un adaptador Ethernet (eth0 eth1 o eth2) y se conectaraacute a un hub o switch Sus computadores DMZ seraacuten conectados al mismo switch o hub (nota Si tiene un uacutenico sistema DMZ puede conectar directamente el firewall al computador usando un cable cruzado)
Precaucioacuten
No conecte la interace interna y externa al mismo hub o switch exceptuando para pruebas Y estaacute corriendo Shorewall 147 o superior Cuando use estas versiones recientes puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en el archivo etcshorewallinterfaces para todas las interfaces conectadas al mismo hubswitch No se recomienda utilizar tal configuracioacuten con un firewall de produccioacuten
Para el resto de esta guiacutea asumiremos que
bull La Interface Externa es eth0bull La Interface Local es eth1bull La Interface DMZ es eth2
La cinfiguracioacuten Shorewall por omisioacuten no define el contenido de ninguna zona Para definir la configuracioacuten de arriba usando el archivo etcshorewallinterfaces dicho archivo contendriacutea
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectdmz eth2 detect
Note que la zona $FW no tiene una entrada en el archvio etcshorewallinterfaces
Edite el archivo etcshorewallinterfaces y defina las interfaces de red de su firewall asociadas con su zona Si tiene una zona disponible a traveacutes de maacutes de una interface de red simplemente incluya una entrada para cada interface y repita el nombre de zona tantas veces como haga falta con su respectiva interface de red
Ejemplo 1 Muacuteltiples Interfaces hacia una Zona
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectloc eth2 detect
Usted puede definir zonas maacutes complicadas usando el archivo etcshorewallhosts pero en la mayoriacutea de los casos ello no es necesario Vea Shorewall_and_Aliased_Interfaceshtml y Multiple_Zoneshtml para algunos ejemplos
Direccionamiento Subredes y Enrutamiento
Normalmente su ISP le asignaraacute un conjunto de direcciones IP Puacuteblicas Usted configuraraacute su interface externa de su firewall para que use una de dichas direcciones permanentemente y entonces tendraacute que decidir como usaraacute el resto de sus direcciones Antes de que contestemos esta pregunta es conveniente primero revisar los fundamentos
Si usted estaacute ampliamente familiarizado con el direccionamiento IP y el enrutamiento puede ir directo a la proacutexima seccioacuten
La siguiente discusioacuten revisa someramente el direccionamiento y el enrutamiento IP Si estaacute interesado en aprender maacutes acerca del tema le recomendaos ampliamente ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0
Direcciones IP
Las direcciones IP versioacuten 4 (IPv4) son nuacutemeros de 32 -bits La notacioacuten wxyz refiere a una direccioacuten donde el byte de orden superior tiene el valor ldquowrdquo el proacuteximo byte tiene el valor ldquoxrdquo etc Si tomamos la direccioacuten 1920214 y la expresamos en hexadecimal obtenemos
C000020E
o viacuteendolo como un entero de 32-bits
C000020E
Subredes
Usted comenzaraacute a escuchar los teacuterminos ldquored Clase Ardquo ldquored Clase B y red Clase C En los primeros diacuteas de IP las redes veniacutean en tres tamantildeos (existiacutea tambieacuten redes Clase D pero era usada de forma diferente)
Clase A - maacutescara de red 255000 size = 2 24Clase B - maacutescara de red 25525500 size = 2 16
Clase C - maacutescara de red 2552552550 size = 256
La clase de una red era determinada uniacutevocamente por el valor del byte superior de su direccioacuten tal que usted pudiera ver la direccioacuten IP e inmediatamente determinara la maacutescara asociada La maacutescara de red es un nuacutemero que cuando se aplica un Y loacutegico con la direccioacuten separa la direccioacuten de red del resto que es la direccioacuten de host Por ejemplo la direccioacuten Clase C 1920214 la direccioacuten de red es el hexadecimal C00002 y el nuacutemero de host es 0E
En la medida que internet crecioacute se hizo claro que tal particionamiento tan grueso de direcciones de 32-bits iva a ser muy limitante (iexclPreviamente a las grandes corporaciones y universidades le fueron asignadas sus propias redes clase A) Despueacutes de unos arranques en falso la teacutecnica de subredes evolucionoacute al sistema actual de redes maacutes pequentildeas la teacutecnica se le refiere como Classless InterDomain Routing (CIDR) Hoy diacutea cualquier sistema que usted probablemente use entenderaacute CIDR y las redes basadas en clases son ya algo del pasado
Una subred es un conjunto contiguo de direcciones IP tal que
1 La cantidad de direcciones en el conjunto es una potencia de 2 y2 La primera direccioacuten en el conjunto es un muacuteltiplo del tamantildeo del conjunto3 La primera direccioacuten en la subred se reserva y se le refiere como la direccioacuten de subred4 La uacutetima direccioacuten en la subred estaacute reservada como la direccioacuten de difusioacuten(broadcast) de la subred
Como puede ver por definicioacuten en cada subred de tamantildeo n hay (n - 2) direcciones utilizables (direcciones que se pueden asignar a maacutequinas) La primera y uacuteltima direccioacuten en la subred son utilizadas como direccioacuten de la subred y direccioacuten de difusioacuten respectivamente En consecuencia las subredes maacutes pequentildeas desperdician maacutes direcciones IP que las redes maacutes grandes
Ya que n es una potencia de dos faacutecilmente podemos calcular el Logaritmo-Base2 (log2) de n Para los tamantildeos maacutes comunes de subred el tamantildeo y su logaritmos base 2 son dados por la siguiente tabla
Tabla 1 Logaritmos Base-2
n log2 n (32 - log2 n)
8 3 29
16 4 28
32 5 27
64 6 26
128 7 25
256 8 24
512 9 23
1024 10 22
2048 11 21
4096 12 20
8192 13 19
16384 14 18
32768 15 17
65536 16 16
Notaraacute que la tabla arriba tambieacuten contiene una columna parar (32 - log2 n) Este nuacutemero es la Variable Length Subnet Mask (VLSM) para una red de tamantildeo n De la tabla arriba podemos derivar la siguiente que es un poco maacutes faacutecil de usar
Tabla 2 VLSM
Subnet Size VLSM Subnet Mask
8 29 255255255248
16 28 255255255240
32 27 255255255224
64 26 255255255192
128 25 255255255128
256 24 2552552550
512 23 2552552540
1024 22 2552552520
2048 21 2552552480
4096 20 2552552400
8192 19 2552552240
16384 18 2552551920
32768 17 2552551280
65536 16 25525500
2 24 8 255000
Note que la VLSM se escribe con barra (ldquordquo) -- a menudo escucharaacute de una subred de tamantildeo 64 referida como una subred ldquobarra 26rdquo y una de tamantildeo 8 referida como de ldquobarra 29rdquo
La maacutescara de subred es simplemente un nuacutemero de 32 bits con los primeros ldquoVLSMrdquo bits puestos a uno y los remanentes bits puestos a cero Por ejemplo para una subred de tamantildeo 64 la maacutescara de subred tiene los primeros 26 bits en uno
11111111111111111111111111000000 = FFFFFFC0 = FFFFFFC0 = 255255255192
La maacutescara de subred tiene la propiedad de que si se hace un Y loacutegico con una direccioacuten en la subred el resultado es la direccioacuten de la subred Igual de importante si hace un Y loacutegico de la maacutescara de subre con una direccioacuten fuera de la subred el resultado NO es la direccioacuten de la subred Como ya veremos esta propiedad de la maacutescara de subred es muy uacutetil para el enrutamiento
Para una subred cuya direccioacuten es abcd y cuyo Variable Length Subnet Mask es v denotamos la subred como ldquoabcdvrdquo usando Notacioacuten CIDR Ejemplo
Tabla 3 Subred
Subred 1010100 - 101010127
Tamantildeo Subred 128
Direccioacuten Subred 1010100
Direccioacuten Difusioacuten 101010127
Notacioacuten CIDR 101010025
Existen dos subredes degeneradas que merecen ser nombradas la subred con un miembro y la subre con 2 32 miembros
Tabla 4 32 y 0
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windowstrade usted salvarlos como archivos Unixtrade si su editor soporta esta opcioacuten o debe pasarlo por el programa dos2unix antes de intentar de usarlos De forma similar si copia un archivo de configuracioacuten del disco duro en Windowstrade a un disco flexible debe pasarlos por dos2unix antes de usarlos con Shorewall
bull Versioacuten Windows trade de dos2unix bull Versioacuten Linux de dos2unix
Requerimientos de Sistema
Shorewall requiere que tenga instalado el paquete iprouteiproute2 (en RedHattrade el paquete se llama iproute) Usted puede saber si este paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando which para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se le recomienda primero leer a lo largo de la guiacutea para familiarizarse con los toacutepicos involucrados para luego volver sobre ella y hacer los cambios de configuracioacuten
Convenciones
Los puntos en los cuales se recomiendan cambios de configuracioacuten estaacuten sentildealadas
Las notas de configuracioacuten que son uacutenicas de LEAFBering estaacute marcadas con
PPTPADSL
Si tiene un Modem ADSL y usa PPTP para comunicarse con un servidor en ese modem usted debe hacer los cambios que se recomiendan aquiacute en adicioacuten a los que se explican abajo ADSL con PPTP se encuentra frecuentemente en Europa y notable Austria
Conceptos Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall -- para configuraciones simples encontraraacute que soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea
Alerta
Nota para los Usuarios Debian
Si instala usando deb encontraraacute que su directorio etcshorewall estaacute vaciacuteo Esto es intencional El esqueleto de archivos de configuracioacuten se pueden encontrar en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no planea modificarlos
Importante
Despueacutes que tiene instalado Shorewall localice las muestras two-interfaces
1 Si instaloacute usando RPM las muestras estaraacuten en el subdirectorio Samplestwo-interfaces del directorio de documentacioacuten de Shorewall Si no sabe donde estaacute el directorio de documentacioacuten Shorewall puede encontrarlo usando el siguiente comando
~ rpm -ql shorewall | fgrep two-interfacesusrsharedocpackagesshorewallSamplestwo-interfacesusrsharedocpackagesshorewallSamplestwo-interfacesinterfacesusrsharedocpackagesshorewallSamplestwo-interfacesmasqusrsharedocpackagesshorewallSamplestwo-interfacespolicyusrsharedocpackagesshorewallSamplestwo-interfacesroutestoppedusrsharedocpackagesshorewallSamplestwo-interfacesrulesusrsharedocpackagesshorewallSamplestwo-interfaceszones~
2 Si instaloacute usando el tarball las muestras estaacuten en el directorio Samplestwo-interfaces en el tarball3 Si instaloacute usando deb las muestras estaacuten en usrsharedocshorewallexamplestwo-interfaces
En la medida que se explica cada archivo le sugerimos que vea el archivo en cuestioacuten en su sistema -- cada archivo contiene instrucciones detallads de configuracioacuten y entradas por omisioacuten
Shorewall ve la red sobre la cual trabaja como si estuviera compuesta de un conjunto de zonas En la configuracioacuten de muestra two-interface se usan los siguientes nombres de zonas
ZONE TYPE OPTIONS IN OUT OPTIONS OPTIONSfw firewallnet ipv4loc ipv4
Las zonas se definen en el archivo etcshorewallzones
Note que Shorewall reconoce el sistema firewall como su propia zona - cuando se procesa el archivo etcshorewallzones el nombre de la zona firewall se almacena en la variable shell $FW que puede usarse para referirse a la zona del firewall a lo largo de la configuracioacuten de Shorewall
Las reglas acerca del traacutefico a permitir o rechazar se expresan en teacuterminos de zonas
bull Usted expresa su poliacutetica por omisioacuten para las conexiones desde una zona a otra en el archivo etcshorewallpolicy
bull Usted define excepciones para dichas poliacuteticas por omisioacuten en el archivo etcshorewallrules
Para cada solicitud de conexioacuten que ingresa al firewall la solicitud se verifica primero contra el archivo etcshorewllrules Si no aplica ninguna regla para la solicitud de conexioacuten entonces la primera poliacutetica en etcshorewallpolicy que coincida se aplica Si hay una accioacuten comuacuten definida para la poliacutetica en etcshorewallactions o usrshareshorewallactionsstd entonces esa accioacuten se ejecuta antes de la poliacutetica
El archivo etcshorewallpolicy que se incluye con la muestra two-interface tiene las siguientes poliacuteticas
SOURCE DEST POLICY LOG LEVEL LIMITBURSTloc net ACCEPTnet all DROP infoall all REJECT info
En la muestra two-interface la liacutenea abajo estaacute incluida pero estaacute comentada Si desea que su sistema firewall tenga acceso completo a los servidores en internet quite el comentario a esa liacutenea
SOURCE DEST POLICY LOG LEVEL LIMITBURST$FW net ACCEPT
Las poliacuteticas anteriores
bull Permitiraacuten todas las solicitudes de conexiones desde la red local hacia internetbull Desacartaacuten (ignoraraacuten) todas las solicitudes de conexioacuten desde internet hacia su firewall o red localbull Opcionalmente aceptar todas las solicitudes de conexiones desde el firewall hacia internet (si levantoacute el
comentario de la poliacutetica adicional)bull Rechazaraacuten todas las otras solicitudes de conexioacuten
Es importante notar que las poliacuteticas Shorewal (y las reglas) refieren a conexiones y no flujo de paquetes Con las poliacuteticas definidas en el archivo etcshorewallpolicy como se muestra arriba las conexiones se permiten desde la zona loc a la zona net incluso aunque no esten permitidas las conexiones desde la zona loc al propio firewall
En este punto edite su etcshorewallpolicy y haga los cambios que considere
Interfaces de Red
El firewall tiene dos interfaces de red Donde si bien la conectividad es a traveacutes de cable modem o Modem DSL la Interface Externa seraacute el adaptador ethernet que se encuentre conectado a dicho Modem (eg eth0) a menos que conecte viacutea Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta por un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces querraacute poner CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Interna seraacute un adaptador ethernet (eth1 o eth0) y conectaraacute a un hub o switch Sus computadores se conectaraacuten al mismo hubswitch (nota Si tiene un uacutenico sistema interno puede conectarlo directamente al firewall usando un cable cruzado)
Alerta
No conecte la interface interna y externa al mismo hub o switch exceptuado para pruebas Usted puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en etcshorewallinterfaces para todas las interfaces comunes al mismo hubswitch Usando tal configuracioacuten con un firewall en produccioacuten no es para nada recomendable
La muestra two-interface de Shorewall asume que la interface externa es eth0 y que la interface interna es eth1 Si su configuracioacuten difiere tendraacute que modificar la muesta acordemente en el archivo etcshorewallinterfaces Mientra esteacute ahiacute puede revisar la lista de opciones que le son especiacuteficas para las interfaces Algunas pistas
Tip
Si su interface externa es ppp0 o ippp0 puede remplazar en la segunda columna detect con ldquo-rdquo (sin las comillas)
Tip
Si su interface externa es ppp0 o ippp0 o si tiene una direccioacuten IP estaacutetica puede eliminar dhcp de la lista de opciones
Tip
Si su interface interna es un puente (bridge) cree If your internal interface is a bridge create using the brctl utility then you must add the routeback option to the option list
Direcciones IP
Antes de seguir avanzando debemos decir unas cuantas palabras acerca de las direcciones Internet Protocol (IP) Normalmente su ISP le asignaraacute una uacutenica direccioacuten IP Puacuteblica Esta direccioacuten puede ser asignada viacutea Dynamic Host Configuration Protocol (DHCP) o como parte del establecimiento de su conexioacuten cuando disca (modem estandar) o establece su conexioacuten PPP En raras ocasiones su ISP le asignaraacute una direccioacuten IP estaacutetica esto significa que usted configuraraacute la interface exerna de su firewall para usar permanentemente esa direccioacuten Sin embargo su direccioacuten IP asignada seraacute compartida por todos sus sistemas cuando accedan a Internet Usted tendraacute que asignar sus propias direcciones en su red interna (la Interface Interna en su firewall maacutes las otras computadores) El RFC 1918 reserva varios rangos de direcciones Privadas IP para ese propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Antes de arrancar Shoreall usted debe ver la direccioacuten IP de su interface externa y si es una dentro de los rangos descritos arriba deberiacutea quitar la opcioacuten norfc1918 de la entrada que corresponde a su interface externa en etcshorewallinterfaces
Usted querraacute asignar sus direcciones desde la misma subred Para nuestros propoacutesitos podemos considerar una subred que consista de un rango de direcciones xyz0 - xyz255 Tal subred tendraacute una maacutescara de red de 2552552550 La direccioacuten xyz0 se reserva como la Direccioacuten de Subred y xyz255 se reserva como la Direccioacuten de Difusioacuten de la Subred (Boradcast) En Shorewall una subred se describe usando la notacioacuten Classless InterDomain Routing (CIDR) que consiste de direcciones de subred seguida de 24 El ldquo24rdquo se refiere a la cantidad de 1 consecutivos a la cabeza de la maacutescara de red
Rango 1010100 - 101010255
Direccioacuten de Subred 1010100
Direccioacuten de Difusioacuten 101010255
Notacioacuten CIDR 101010024
Es convencioacuten asignarle la primera direccioacuten utilizable en la subred a la interface interna (1010101 en el ejemplo anterior) o la uacuteltima (101010254)
Uno de los propoacutesitos de hacer subredes es permitir a todas las computadoras en la subred entender queacute otras computadoras pueden comunicarse con ellas directamente Para comunicarse con sistemas fuera de la subre los sistemas deben enviar los paquetes a su detino final a traveacutes de un gateway (enrutador)
Sus computadoras locales (computer 1 y computer 2 en el diagrama arriba) deben ser configuradas con el default gateway a la direccioacuten IP de la interface interna del firewall
La discusioacuten a continuacioacuten repasa por encima los temas de subredes y enrutamiento Si estaacute interesado en aprender maacutes acerca del direccionamiento y el enrutamiento IP si le recomienda altamente el libro ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0 (enlace)
El resto de esta guiacutea asume que tiene su red dispuesta de esta forma
El default gateway para las computdores 1 y 2 seriacutea 101010254
Alerta
Su ISP puede que le asigne una direccioacuten RFC 1918 para su interface externa Si dicha direccioacuten estaacute en la subred 101010024 entonces tendraacute que seleccionar una subred DIFERENTE RFC 1918 para su red local
Enmascaramiento IP (SNAT)
Las direcciones reservadas por el RFC 1918 son a veces referidas como no-ruteable debido a que los enrutadores en el corazoacuten de Internet no se renviacutean los paquetes IP cuando tienen como destino una direccioacuten RFC 1918 Cuando uno de su sistemas locales (digamos computer 1) enviacutea una solicitud de conexioacuten a una maacutequina en Internet el firewall debe hacer Network Address Translation (NAT Traduccioacuten de Direccioacuten de Red) El firewall rescribe la direccioacuten de origen en el paquete para que sea la direccioacuten de la interface externa del firewall en otras palabras el
firewall hace parecer que la solicitud de conexioacuten fueacute originada en el propio firewall Esto es necesario hacerlo para la maaacutequina destino sea capaz de enrutar la respuesta de vuelta hasta el firewall (recuerde que los paquetes cuyos destinos es una direccioacuten RFC 1918 no son enrutados a traveacutes de internet para que la respuesta vuelva su origen en computer 1) Cuando el firewall recibe un paquete de respuesta rescribe la direccioacuten de destino de vuelta a 1010101 y enviacutea el paquete a computer 1
En los sistemas Linux el proceso anterior es conocido como Enmascaramiento IP pero tambieacuten veraacute el uso del teacutermino Source Network Address Translation (SNAT) Shorewall sigue la convencioacuten que usa Netfilter
bull Enmascaramiento (Masquerade) describe el caso donde se permite al sistema firewall detectar automaacuteticamente la direccioacuten de la interface externa
bull SNAT se refiere al caso donde expliacutecitamente especifica la direccioacuten origen que desea usar en los paquetes salientes
En Shorewall tanto Enmascaramiento y SNAT se configuran con entradas en el archivo etcshorewallmasq Normalmente usaraacute Enmascaramiento si su direccioacuten IP en la interface externa es dinaacutemica y SNAT en el caso de direccioacuten IP estaacutetica
Si la interface externa de su firewall es eth0 no se necesita modificar el archivo provisto con la muestra De otra forma edite etcshorewallmasq y cambie la primera columna para que refleje el nombre de su interface externa y la segunda columna el nombre de su interface interna
Si su direccioacuten IP externa es estaacutetica puede enterarla en la tercrea columna en etcshorewallmasq si desea si bien su firewall funcionaraacute bien si no lo hace Enterar su direccioacuten IP estaacutetica en la tercera columna hace que procesar los paquetes salientes sea un poco maacutes eficiente
Si estaacute usando el paquete Debian por favor revise su archivo shorewallconf para asegurarse que lo siguiente esteacute escrito correctamente si no es asiacute caacutembielo apropiadamente
bull IP_FORWARDING=On
Desviacuteo de Puerto (DNAT)
Una de sus metas puede ser correr uno o mas servidores en sus sistemas locales Ya que dichas computadoras tienen direcciones RFC-1918 no es posible a los clientes en internet conectar directamente con ellas En cambio es necesario para dichos clientes dirigir sus solicitudes de conexioacuten hacia el firewall quien rescribe la direccioacuten destino a la direccioacuten de su servidor y enviacutea el paquete al servidor Cuando su servidor responde el firewall automaacuteticamente realiza SNAT para rescribir la direccioacuten origen en la respuesta
El proceso anterior es llamado Desviacuteo de Puerto o Port Forwarding o Destination Network Address Translation (DNAT) Usted puede configurar el desviacuteo de puerto usando las reglas DNAT en el archivo etcshorewallrules
La forma general de una regla de desviacuteo de puerto simple en etcshorewallrules es
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net locltserver local ip addressgt[ltserver portgt] ltprotocolgt ltportgt
Shorewall incorpora macros para muchas de las aplicaciones populares Revise en usrshareshorewallmacro para identificar los macros disponibles en su versioacuten Los macros simplemente crean reglas DNAT suministrando el protocolo y puerto(s) como se muestra en los siguientes ejemplos
Ejemplo 1 Servidor Web
Usted estaacute corriendo un Servidor Web en computer 2 y desea desviar el puerto entrante TCP 80 a este sistema
ACTION SOURCE DEST PROTO DEST PORT(S)WebDNAT net loc1010102
Ejemplo 2 Servidor FTP
Usted estaacute corriendo un Servidor FTP en computer 1 tal que desea entonces desviar el puerto entrante TCP 21 a ese sistema
ACTION SOURCE DEST PROTO DEST PORT(S)FTPDNAT net loc1010101
Para FTP necesitaraacute adicionalmente el motor de seguimiento de conexiones y el soporte NAT en su kernel Para los kernel provistos por el vendedor esto significa que los moacutedulos ip_conntrack_ftp y ip_nat_ftp deben ser cargados Shorewall cargaraacute automaacuteticamente dichos moacutedulos si estaacuten disponibles y localizados en el lugar estandar bajo libmodulesltkernel versiongtkernelnetipv4netfilter
Un par de puntos importantes a mantener en mente son
bull Usted debe probar la regla anterior desde un cliente externe a su red local (ie no pruebe desde un explorador en los computadores 1 o 2 o en el firewall) Si desea ser capaz de acceder a su servidor web yo ftp desde adentro de su fireall usando la direccioacuten IP de su interface externa vea Shorewall FAQ 2
bull Muchos ISPs bloquean las solicitudes entrantes al puerto 80 Si tiene problemas conectaacutendose a su servidor intente seguir la siguiente regla y conectar al puerto 5000
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net loc101010280 tcp 5000
En este punto modifique etcshorewallrules para agregar cualquier regla DNAT que se requiera
Importante
Cuando pruebe las reglas DNAT como las anteriores debe realizar las pruebas desde un cliente AFUERA de su fiewall (en la zona net ) Usted no puede probar estas reglas desde la parte interior del firewall
Para tips de Resolucioacuten de Problemas con DNAT vea FAQs 1a y 1b
Domain Name Server (DNS)
Normalmente cuando usted conecta con su ISP y como parte del proceso de obtener una direccioacuten IP el resolutor Domain Name Service (DNS) del firewall seraacute automaacuteticamente configurado (eg el archivo etcresolvconf seraacute rescrito) Alternativamente su ISP puede darle la direccioacuten IP de un par de servidores de nombre DNS para que manualmente los configure como servidores de nombre primario y secundario respectivamente Sin importar la forma en coacutemo se configuran los servidores DNS en su firewall es su responsabilidad configurar el resolutor en sus sistemas internos Puede escoger uno de dos caminos
bull Configura sus sistemas internos para que usen los servidores de nombre de su ISP Si su ISP le ha suministrado las direcciones de sus servidores DNS o de otros disponibles en su sitio web usted puede configurar sus sistemas internos para que usen dichas direcciones Si dicha informacioacuten no estaacute disponible vea en el archivo etcresolvconf de su sistema firewall -- los servidores de nombre son declarados con los registros nameserver en este archivo
bull Puede configurar un Cache Servidor de Nombres en su firewall Red Hattrade tiene un RPM para el cache servidor de nombres (el RPM tambieacuten requier el RPM bind) y para los usuarios Bering hay un dnscachelrp Si toma este camino usted configuraraacute sus sistemas internos para que usen el mismo firewall como su servidor primario (o uacutenico) de nombres Usariacutea la direccioacuten IP interna de su firewall (101010254 en el ejemplo anterior) como direccioacuten del servidor de nombres Para permitir a los sistemas locales hablar con el cache servidor de nombre deberaacute abrir el puerto 53 (ambos UDP y TCP) desde la red local hacia el firewall esto lo hace agregar las siguientes reglas en etcshorewallrules
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT loc $FW
Otras Conexiones
La muestra two-interface incluye las siguientes reglas
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT $FW net
Esta regla permite el acceso DNS desde su firewall y puede quitarse si ha quitado el comentario en la liacutenea de etcshorewallpolicy que permite todas las conexiones desde el firewall hacia internet
En la regla que se muestra arriba ldquoDNSACCEPTrdquo es un ejemplo de una invocacioacuten macro Shorewall incluye una cantidad de macros (vea usrshareshorewallmacro) y usted puede agregar los suyos
Usted no tiene que usar los macros cuando codifique las reglas en etcshorewallrules Shorewall arrancaraacute ligeramente maacutes raacutepido si codifica sus reglas directamente en vez de usar macros La regla anterior tambieacuten pudo haber sido codificada asiacute
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW net udp 53ACCEPT $FW net tcp 53
En los casos donde Shorewall no incluya un macro que satisfaga sus necesidades puede ya sea definir un nuevo macro o simplemente codificar las reglas apropiadas directamente
La muestra tambieacuten incluye
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT loc $FW
Esta regla permite correr el servidor SSH en su firewall y conectarse a eacutel desde los sistemas locales
Si desea habilitar otras conexiones desde su firewall a otros sistemas el formato general usando macros es
ACTION SOURCE DEST PROTO DEST PORT(S)ltmacrogtACCEPT $FW ltdestination zonegt
El formato general cuando no se usan macros predefinidos es
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW ltdestination zonegt ltprotocolgt ltportgt
Ejemplo 3 Servidor Web en el Firewall
Usted desea correr un servidor Web en su sistema firewall
ACTION SOURCE DEST PROTO DEST PORT(S)WebACCEPT net $FWWebACCEPT loc $FW
Estas dos reglas por supuesto seriacutean un agregado a las reglas listadas arriba bajo ldquoPuede configurar un Cache Servidor de Nombres en su firewall rdquo
Si no sabe queacute puerto y protcolo usa una aplicacioacuten particular mire aquiacute
Importante
No recomendados habilitar telnet desdehacia internet porque usa texto en claro para su comunicacioacuten (incluso para el login) Si desea acceso shell para su firewall desde Internet use SSH
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT net $FW
Los usuarios Bering querraacuten agregar las siguientes dos reglas para ser compatibles con la configuracioacuten Shorewall de Jacques
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT loc $FW udp 53 Allow DNS Cache to workACCEPT loc $FW tcp 80 Allow Weblet to work
Ahora edite su archivo etcshorewallrules para agregar o eliminar otras conexiones como se necesario
Algunos Concejos a Mantener en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque enviacutee solicitudes de conexioacuten a la direccioacuten IP de la interface externa de su firewall no significa que la solicitud seraacute asociada con la interface externa o con la zona ldquonetrdquo Cualquier traacutefico que se genere desde la red local seraacute asociado con su interface local y seraacute tratado como traacutefico loc-gtfw
bull Las direcciones IP son propiedades de los sistemas no de las interfaces Es un error pensar que su firewall sea capaz de renviar paquetes soacutelo porque puede hacerle ping a la direccioacuten IP de todas las interfaces IP del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping exitoso es que el enlace entre el sistema local y el firewall funciona bien y que probablemente tenga bien configurado el default gateway del sistema local
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zonas loc poniendo una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO necesariamente siguen automaacuteticamente el camino reverso al tomado por el paquete original de solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso en su camino Este tema usualmente salta a la palestra cuando se instala un firewall Shorewallall en paralelo a un gateway existente y se intenta usar DNAT a traveacutes del Shorewall sin cambiar el default gateway en el sistema que recibe la solicitud renviada Las solicitudes
entraraacuten por el firewall Shorewall donde la direccioacuten IP destino es rescrita pero la respuesta sale sin modificacioacuten por medio del gateway antiguo
bull Shorewall no tiene nocioacuten de adentro o afuera por siacute mismo Estos conceptos se incorporan en el coacutemo se configura Shorewall
Arrancando y Deteniendo Su Firewall
El procedimiento de instalacioacuten configura su sistema para arrancar Shorewall al arrancar (boot) el sistema pero el inicio de Shorewall estaacute deshabilitado por omisioacuten en su configuracioacuten asiacute que no intente arrancar su Shorewall hasta que termine la configuracioacuten Una vez que se hay completado la configuracioacuten de su firewall debe editar su etcshorewallshorewallconf y poner STARTUP_ENABLED=Yes
Importante
Los usuarios del paquete deb deben editar etcdefaultshorewall y poner startup=1
El firewall se arranca usando el comando ldquoshorewall startrdquo y se detiene con el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado para aquellas maacutequinas que tengan una entrada en el archivo etcshorewallroutestopped Un firewall detenido debe ser reiniciado usando el comando ldquoshorewall restartrdquo Si desea eliminar totalmente todo rastro de Shorewall de su configuracioacuten Netfilter use el comando ldquoshorewall clearrdquo
Esta muestra two-interface asume que usted desea habilitar el enrutamiento desdehacia eth1 (la red local) cuando Shorewall estaacute detenido Si su red local no estaacute conectada a eth1 o si desea habilitar el acceso desdehacia otras maacutequinas cambie apropiadamente el archivo etcshorewallroutestopped
Alerta
Si usted estaacute conectado a su firewall desde internet no enviacutee el comando ldquoshorewall stoprdquo a menos que haya agregado una entrada con la direccioacuten IP desde donde se conectoacute al archivo etcshorewallroutestopped Tampoco recomendamos usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarla con el comando ldquoshorewall tryrdquo
Lectura Adicional Recomendada
Se le recomienda altamente la paaacutegina Archivo de Facilidades de Configuracioacuten Comunes -- contiene tips uacutetiles acerca de las facilidades Shorewall que hacen maacutes faacutecil la administracioacuten del firewall Shorewall
Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
Una vez que tiene su arreglo de dos interfaces funcionando el siguiente paso loacutegico es agregar una conexioacuten de red inalaacutembrica El primer paso es agergar la tarjeta de red adicional a su firewall ya sea una tarjeta inalaacutembirca o una tarjeta ethernet que conecte a un punto de acceso inalaacutembirco
Precaucioacuten
Cuando agrega una tarjeta de red eacutesta no seraacute necesariamente detectada como la siguiente interface ethernet superior Por ejemplo si tiene dos interfaces ethernet en su sistema (eth0 and eth1) y agrega una tercera tarjeta que usa el mismo manejador (driver) de alguna de las dos anteriores la tercera no necesariamente seraacute detectada como eth2 mal pudiera ser detectada como eth0 o eth1 Usted puede ya sea vivir con ello o puede intercambiar las tarjetas en los soacutecates hasta que la nueva tarjeta sea detectada como eth2
Su nuevo arreglo de red luciraacute similar a la figura siguiente
La primera cosa notable es que las computadores en su red inalaacutembrica estan en una subred diferente a los de su red cableada en la LAN En el ejemplo de arriba hemos escogido usar la red 101011024 Las computadoras 3 y 4 seriacutean configuradas con la direccioacuten IP del default gateway IP a 101011254
Segundo hemos escogido incluir la red inalaacutembrica como parte de la zona local Ya que Shorewall permite el traacutefico en-la-zona por omisioacuten el traacutefico puede fluir libremente entre la red cableada local y la red inalaacutembrica
Hay soacutelo dos cambios necesarios para nuestra configuracioacuten Shorewall
bull Se necesita agregar una entrada a etcshorewallinterfaces para la interface de red inalaacutembrica Si la interface inalaacutembrica es wlan0 la entrada puede lucir asiacute
ZONE INTERFACE BROADCAST OPTIONSloc wlan0 detect maclist
Como se muestra en la entrada anterior se recomienda usar la opcioacuten maclist para el segmento inalaacutembrico En paralelo agregue las entradas para las computadoras 3 y 4 en etcshorewallmaclist para prevenir que sus vecinos obtengan una conexioacuten gratuita a internet a sus expensas Comience por omitir esta opcioacuten cuando tenga todo funcionando entonces agregue esta opcioacuten y configure su archivo etcshorewallmaclist
bull Usted necesita agregar una entrada al archivo etcshorewallmasq para enmascarar el traacutefico desde la red inalaacutembrica hacia internet Si su interface hacia internet es eth0 y su interface inalaacutembrica es wlan0 la entrada seriacutea asiacute
INTERFACE SUBNET ADDRESSeth0 wlan0
Otra cosa a notar para poner la red de Microsofttrade a funcionar entre las redes inalaacutembrica y cableada necesitaraacute ya sea un servidor WINS o un PDC Yo personalmente uso Samba configurado como servidor WINS corriendo en mi firewall Correr un servidor WINS en el firewall requiere las reglas que se listan en documentacioacuten ShorewallSamba
Guiacutea de Configuracioacuten de Shorewall
Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
Precaucioacuten
Este artiacuteculo aplica a Shorewall 30 en adelante Si estaacute corriendo una versioacuten previa de Shorewall 300 entonces por favor vea la documentacioacuten para dicha liberacioacuten
Introduccioacuten
Esta guiacutea estaacute destinada a los usuarios que desean configurar Shorewall en entornos donde un conjunto de direcciones IP puacuteblicas deben ser manejadas Para quienes desean conocer maacutes acerca de Shorewall en otros entornos revise las Guiacuteas Raacutepidas de Shorewall Debido a las amplias diferentes posibles aplicaciones la Guiacutea le daraacute directrices y apuntaraacute hacia otros recursos si ello es necesario
Precaucioacuten
Shorewall requiere el paquete iprouteiproute2 instalado (en RedHat el paquete se llama iproute) Usted puede saber si el paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando ldquowhichrdquo para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se recomienda que primero lea la guiacutea para que se familiarice con lo que estaacute involucrado y luego vuelva hacia atraacute y comience sobre los cambios de configuracioacuten requeridos Los puntos donde se recomiendan cambios de
configuracioacuten se sentildealan con
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windows usted debe salvarlos como archivos Unix si su editor soporta dicha opcioacuten o debe ejecutar dicho archivo con dos2unix antes de usarlo con Shorewall De forma similar si copia un archivo de configuracioacuten desde su disco duro en Windows a un disco flexible debe ejecutar previamente dos2unix contra la copia antes de usarla con Shorewall
bull Enlace a versioacuten Windows de dos2unix httpwwwsimtelnetpubpd51438html bull Enlace a versioacuten Linux de dos2unix httpwwwmegalomancom7Ehanysoftwarehd2u
Conceptos de Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall para la mayoriacutea de las configuraciones soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea El esqueleto de archivos de configuracioacuten es creado durante el Proceso de Instalacioacuten de Shorewall
Alerta
Nota para los Usuarios Debian
Si instala usando un deb encontraraacute que el directorio etcshorewall estaacute vaciacuteo Esto es intencional Los archivos del esqueleto correspondientes a la liberacioacuten correspondiente pueden encotrarse en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no los modifica
En la medida que introducimos cada archivo sugerimos que revise dicho archivo en su sistema cada archivo contiene instrucciones detalladas de configuracioacuten
Shorewall ve la red donde estaacute corriendo como si estuviera compuesta de un conjunto de zonas En esta guiacutea usaremos las siguientes zonas
fw
El propio sistema firewall
net
La red puacuteblica Internet
loc
La red local privada que usa direcciones IP privadas
dmz
Una Zona Desmilitarizada que aloja servidores de acceso puacuteblico
Las zonas se definen en el archivo etcshorewallzones
Importante
El archivo etcshorewallzones incluiacutedo en la distribucioacuten estaacute vaciacuteo Usted puede crear el conjunto de zonas estandar descritas anteriormente copiando y pegando el siguiente contenido en dicho archivo
ZONE TYPE OPTIONSfw firewallnet ipv4loc ipv4dmz ipv4
Note que Shorewall reconoce al sistema firewall como su propia zona El ejemplo anterior sigue la convencioacuten usual de nombres zona firewall fw El nombre especificado para la zona firewall (fw en el ejemplo anterior) se almacena en la variable shell $FW cuando se procesa el archivo etcshorewallzones Con la excepcioacuten del nombre asignado a la zona firewall Shorewall no asocia ninguacuten significado especial a los nombes de zona Las zonas son lo que USTED hace de ellas Ello significa que no debe esperar que Shorewall haga algo especial porque esta es la zona interna o porque esta es la zona DMZ
Edite el archivo etcshorewallzones y haga los cambios necesarios
La reglas acerca de queacute traacutefico permitir y negar se expresan en teacuterminos de las zonas
bull Usted expresa la poliacutetica por omisioacuten para conexiones desde una a otra zona en el archivo etcshorewallpolicy
bull Usted define excepciones a dichas poliacuteticas en etcshorewallrules
Shorewall se construye sobre el motor de kernel Netfilter Netfilter implementa la funcioacuten de seguimiento de conexiones que permite lo que se denomina como inspeccioacuten por estado (stateful inspection) de paquetes Esta capacidad de manejar los estados permite que las reglas de firewall sean definidas en teacuterminos de conexiones en vez de paquetes Con Shorewall usted
1 Identifica la zona origen (cliente)2 Identifica la zona destino (servidor)3 Si la POLITICA de la zona cliente a la zona servidor es lo que desea para esta pareja clienteservidor no
necesita hacer nada adicional4 Si la POLITICA no es lo que desea entonces debe agregar una regla La regla se expresa en teacuterminos de la
zona del cliente y de la zona del servidor
Soacutelo porque las conexiones de un tipo particular desde la zona A hacia el firewall estaacuten permitidas y que tambieacuten estaacuten permitidas desde el firewall a la zona B NO sigifica que estas conexiones esten permitidas entre la zona A y la zona B (en otras palabras las poliacuteticas y reglas que involucran a la zona firewall no son transitivas) A cambio significa que usted puede tener un proxy corriendo en el firewall que acepta conexiones desde la zona A y luego establece conexiones separadas por siacute mismo desde el firewall hacia la zona B
Para cada solicitud de conexioacuten que entra al firewall la solicitud se chequea primero contra el archivo etcshorewallrules Si ninguna regla del archivo aplica se aplica a la solicitud de conexioacuten la primera poliacutetica en etcshorewallpolicy que corresponda con dicha solicitud despueacutes de que haya pasado por la accioacuten comuacuten apropiada (si existe alguna)
Previo a Shorewall 220 el archivo por omisioacuten etcshorewallpolicy teniacutea las siguientes poliacuteticas
SOURCE ZONE DESTINATION ZONE POLICY LOG LIMITBURST LEVELloc net ACCEPTnet all DROP infoall all REJECT info
Importante
El archivo de poliacuteticas de la versioacuten actual estaacute vaciacuteo Usted puede copiar y pegar las entradas anteriores para crear un punto de partida para luego personalizar sus poliacuteticas
Las poliacuteticas anteriores haraacuten que
1 permitiraacute todas las solicitudes de conexiones desde la red local hacia internet2 descartaraacute (ignoraraacute) todas las solicitudes de conexiones desde internet hacia su firewall o red local y se
registra un mensaje a nivel informativo (info level log vea aquiacute la descripcioacuten de los niveles de registro)3 rechaza todas las solicitudes de conexiones y registra un mensaje a nivel informativo Cuando una solicitud
se rechaza el firewall devuelve un RST (si el protocolo es TCP) o un paquete ICMP de puerto-inalcanzabe para los otros protocolos
En este punto edite su archivo etcshorewallpolicy y haga los cambios que desee
Interfaces de Red
Para el resto de esta guiacutea nos referiremos al siguiente diagrama Si bien puede que no luzca como el de su red puede usarse para ilustrar los aspectos importantes de la configuracioacuten Shorewall
En este diagrama
bull La Zona DMZ consiste de los sistemas DMZ 1 y DMZ 2 Una DMZ se usa para aislar su servidors accesibles desde internet de sus sistemas locales tal que si uno de esos servidores estaacute comprometido auacuten tendraacute el firewall entre el sistema comprometido y sus sistemas en la red local
bull La Zona Local consiste de los sistemas Local 1 Local 2 y Local 3bull Todos los sistemas desde el ISP hacia afuera componen la Zona Internet
La forma maacutes cimple de definir zonas es asociar el nombre de la zona (previamente definida en etcshorewallzones) con una interface de red Esto se hace en el archivo etcshorewallinterfaces El firewall ilustrado arriba tiene tres interfaces de red Donde la conectividad hacia Internet es hecha a traveacutes de un cable Modem o DSL la Interface Externa seraacute un adaptador Ethernet que se ecneuntra conectado al Modem (eg eth0) a menos que conecte usando Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta usando un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces desearaacute establecer CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Local seraacute un adaptador Ethernet (eth0 eth1 o eth2) y conectaraacute a un hub o switch Sus computadores locales estaraacuten conectadas al mismo switch o hub (nota Si tiene un uacutenico sistema local puede conectar directamente el firewall al computador utilizando un cable cruzado)
Su Interface DMZ tambieacuten seraacute un adaptador Ethernet (eth0 eth1 o eth2) y se conectaraacute a un hub o switch Sus computadores DMZ seraacuten conectados al mismo switch o hub (nota Si tiene un uacutenico sistema DMZ puede conectar directamente el firewall al computador usando un cable cruzado)
Precaucioacuten
No conecte la interace interna y externa al mismo hub o switch exceptuando para pruebas Y estaacute corriendo Shorewall 147 o superior Cuando use estas versiones recientes puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en el archivo etcshorewallinterfaces para todas las interfaces conectadas al mismo hubswitch No se recomienda utilizar tal configuracioacuten con un firewall de produccioacuten
Para el resto de esta guiacutea asumiremos que
bull La Interface Externa es eth0bull La Interface Local es eth1bull La Interface DMZ es eth2
La cinfiguracioacuten Shorewall por omisioacuten no define el contenido de ninguna zona Para definir la configuracioacuten de arriba usando el archivo etcshorewallinterfaces dicho archivo contendriacutea
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectdmz eth2 detect
Note que la zona $FW no tiene una entrada en el archvio etcshorewallinterfaces
Edite el archivo etcshorewallinterfaces y defina las interfaces de red de su firewall asociadas con su zona Si tiene una zona disponible a traveacutes de maacutes de una interface de red simplemente incluya una entrada para cada interface y repita el nombre de zona tantas veces como haga falta con su respectiva interface de red
Ejemplo 1 Muacuteltiples Interfaces hacia una Zona
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectloc eth2 detect
Usted puede definir zonas maacutes complicadas usando el archivo etcshorewallhosts pero en la mayoriacutea de los casos ello no es necesario Vea Shorewall_and_Aliased_Interfaceshtml y Multiple_Zoneshtml para algunos ejemplos
Direccionamiento Subredes y Enrutamiento
Normalmente su ISP le asignaraacute un conjunto de direcciones IP Puacuteblicas Usted configuraraacute su interface externa de su firewall para que use una de dichas direcciones permanentemente y entonces tendraacute que decidir como usaraacute el resto de sus direcciones Antes de que contestemos esta pregunta es conveniente primero revisar los fundamentos
Si usted estaacute ampliamente familiarizado con el direccionamiento IP y el enrutamiento puede ir directo a la proacutexima seccioacuten
La siguiente discusioacuten revisa someramente el direccionamiento y el enrutamiento IP Si estaacute interesado en aprender maacutes acerca del tema le recomendaos ampliamente ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0
Direcciones IP
Las direcciones IP versioacuten 4 (IPv4) son nuacutemeros de 32 -bits La notacioacuten wxyz refiere a una direccioacuten donde el byte de orden superior tiene el valor ldquowrdquo el proacuteximo byte tiene el valor ldquoxrdquo etc Si tomamos la direccioacuten 1920214 y la expresamos en hexadecimal obtenemos
C000020E
o viacuteendolo como un entero de 32-bits
C000020E
Subredes
Usted comenzaraacute a escuchar los teacuterminos ldquored Clase Ardquo ldquored Clase B y red Clase C En los primeros diacuteas de IP las redes veniacutean en tres tamantildeos (existiacutea tambieacuten redes Clase D pero era usada de forma diferente)
Clase A - maacutescara de red 255000 size = 2 24Clase B - maacutescara de red 25525500 size = 2 16
Clase C - maacutescara de red 2552552550 size = 256
La clase de una red era determinada uniacutevocamente por el valor del byte superior de su direccioacuten tal que usted pudiera ver la direccioacuten IP e inmediatamente determinara la maacutescara asociada La maacutescara de red es un nuacutemero que cuando se aplica un Y loacutegico con la direccioacuten separa la direccioacuten de red del resto que es la direccioacuten de host Por ejemplo la direccioacuten Clase C 1920214 la direccioacuten de red es el hexadecimal C00002 y el nuacutemero de host es 0E
En la medida que internet crecioacute se hizo claro que tal particionamiento tan grueso de direcciones de 32-bits iva a ser muy limitante (iexclPreviamente a las grandes corporaciones y universidades le fueron asignadas sus propias redes clase A) Despueacutes de unos arranques en falso la teacutecnica de subredes evolucionoacute al sistema actual de redes maacutes pequentildeas la teacutecnica se le refiere como Classless InterDomain Routing (CIDR) Hoy diacutea cualquier sistema que usted probablemente use entenderaacute CIDR y las redes basadas en clases son ya algo del pasado
Una subred es un conjunto contiguo de direcciones IP tal que
1 La cantidad de direcciones en el conjunto es una potencia de 2 y2 La primera direccioacuten en el conjunto es un muacuteltiplo del tamantildeo del conjunto3 La primera direccioacuten en la subred se reserva y se le refiere como la direccioacuten de subred4 La uacutetima direccioacuten en la subred estaacute reservada como la direccioacuten de difusioacuten(broadcast) de la subred
Como puede ver por definicioacuten en cada subred de tamantildeo n hay (n - 2) direcciones utilizables (direcciones que se pueden asignar a maacutequinas) La primera y uacuteltima direccioacuten en la subred son utilizadas como direccioacuten de la subred y direccioacuten de difusioacuten respectivamente En consecuencia las subredes maacutes pequentildeas desperdician maacutes direcciones IP que las redes maacutes grandes
Ya que n es una potencia de dos faacutecilmente podemos calcular el Logaritmo-Base2 (log2) de n Para los tamantildeos maacutes comunes de subred el tamantildeo y su logaritmos base 2 son dados por la siguiente tabla
Tabla 1 Logaritmos Base-2
n log2 n (32 - log2 n)
8 3 29
16 4 28
32 5 27
64 6 26
128 7 25
256 8 24
512 9 23
1024 10 22
2048 11 21
4096 12 20
8192 13 19
16384 14 18
32768 15 17
65536 16 16
Notaraacute que la tabla arriba tambieacuten contiene una columna parar (32 - log2 n) Este nuacutemero es la Variable Length Subnet Mask (VLSM) para una red de tamantildeo n De la tabla arriba podemos derivar la siguiente que es un poco maacutes faacutecil de usar
Tabla 2 VLSM
Subnet Size VLSM Subnet Mask
8 29 255255255248
16 28 255255255240
32 27 255255255224
64 26 255255255192
128 25 255255255128
256 24 2552552550
512 23 2552552540
1024 22 2552552520
2048 21 2552552480
4096 20 2552552400
8192 19 2552552240
16384 18 2552551920
32768 17 2552551280
65536 16 25525500
2 24 8 255000
Note que la VLSM se escribe con barra (ldquordquo) -- a menudo escucharaacute de una subred de tamantildeo 64 referida como una subred ldquobarra 26rdquo y una de tamantildeo 8 referida como de ldquobarra 29rdquo
La maacutescara de subred es simplemente un nuacutemero de 32 bits con los primeros ldquoVLSMrdquo bits puestos a uno y los remanentes bits puestos a cero Por ejemplo para una subred de tamantildeo 64 la maacutescara de subred tiene los primeros 26 bits en uno
11111111111111111111111111000000 = FFFFFFC0 = FFFFFFC0 = 255255255192
La maacutescara de subred tiene la propiedad de que si se hace un Y loacutegico con una direccioacuten en la subred el resultado es la direccioacuten de la subred Igual de importante si hace un Y loacutegico de la maacutescara de subre con una direccioacuten fuera de la subred el resultado NO es la direccioacuten de la subred Como ya veremos esta propiedad de la maacutescara de subred es muy uacutetil para el enrutamiento
Para una subred cuya direccioacuten es abcd y cuyo Variable Length Subnet Mask es v denotamos la subred como ldquoabcdvrdquo usando Notacioacuten CIDR Ejemplo
Tabla 3 Subred
Subred 1010100 - 101010127
Tamantildeo Subred 128
Direccioacuten Subred 1010100
Direccioacuten Difusioacuten 101010127
Notacioacuten CIDR 101010025
Existen dos subredes degeneradas que merecen ser nombradas la subred con un miembro y la subre con 2 32 miembros
Tabla 4 32 y 0
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
PPTPADSL
Si tiene un Modem ADSL y usa PPTP para comunicarse con un servidor en ese modem usted debe hacer los cambios que se recomiendan aquiacute en adicioacuten a los que se explican abajo ADSL con PPTP se encuentra frecuentemente en Europa y notable Austria
Conceptos Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall -- para configuraciones simples encontraraacute que soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea
Alerta
Nota para los Usuarios Debian
Si instala usando deb encontraraacute que su directorio etcshorewall estaacute vaciacuteo Esto es intencional El esqueleto de archivos de configuracioacuten se pueden encontrar en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no planea modificarlos
Importante
Despueacutes que tiene instalado Shorewall localice las muestras two-interfaces
1 Si instaloacute usando RPM las muestras estaraacuten en el subdirectorio Samplestwo-interfaces del directorio de documentacioacuten de Shorewall Si no sabe donde estaacute el directorio de documentacioacuten Shorewall puede encontrarlo usando el siguiente comando
~ rpm -ql shorewall | fgrep two-interfacesusrsharedocpackagesshorewallSamplestwo-interfacesusrsharedocpackagesshorewallSamplestwo-interfacesinterfacesusrsharedocpackagesshorewallSamplestwo-interfacesmasqusrsharedocpackagesshorewallSamplestwo-interfacespolicyusrsharedocpackagesshorewallSamplestwo-interfacesroutestoppedusrsharedocpackagesshorewallSamplestwo-interfacesrulesusrsharedocpackagesshorewallSamplestwo-interfaceszones~
2 Si instaloacute usando el tarball las muestras estaacuten en el directorio Samplestwo-interfaces en el tarball3 Si instaloacute usando deb las muestras estaacuten en usrsharedocshorewallexamplestwo-interfaces
En la medida que se explica cada archivo le sugerimos que vea el archivo en cuestioacuten en su sistema -- cada archivo contiene instrucciones detallads de configuracioacuten y entradas por omisioacuten
Shorewall ve la red sobre la cual trabaja como si estuviera compuesta de un conjunto de zonas En la configuracioacuten de muestra two-interface se usan los siguientes nombres de zonas
ZONE TYPE OPTIONS IN OUT OPTIONS OPTIONSfw firewallnet ipv4loc ipv4
Las zonas se definen en el archivo etcshorewallzones
Note que Shorewall reconoce el sistema firewall como su propia zona - cuando se procesa el archivo etcshorewallzones el nombre de la zona firewall se almacena en la variable shell $FW que puede usarse para referirse a la zona del firewall a lo largo de la configuracioacuten de Shorewall
Las reglas acerca del traacutefico a permitir o rechazar se expresan en teacuterminos de zonas
bull Usted expresa su poliacutetica por omisioacuten para las conexiones desde una zona a otra en el archivo etcshorewallpolicy
bull Usted define excepciones para dichas poliacuteticas por omisioacuten en el archivo etcshorewallrules
Para cada solicitud de conexioacuten que ingresa al firewall la solicitud se verifica primero contra el archivo etcshorewllrules Si no aplica ninguna regla para la solicitud de conexioacuten entonces la primera poliacutetica en etcshorewallpolicy que coincida se aplica Si hay una accioacuten comuacuten definida para la poliacutetica en etcshorewallactions o usrshareshorewallactionsstd entonces esa accioacuten se ejecuta antes de la poliacutetica
El archivo etcshorewallpolicy que se incluye con la muestra two-interface tiene las siguientes poliacuteticas
SOURCE DEST POLICY LOG LEVEL LIMITBURSTloc net ACCEPTnet all DROP infoall all REJECT info
En la muestra two-interface la liacutenea abajo estaacute incluida pero estaacute comentada Si desea que su sistema firewall tenga acceso completo a los servidores en internet quite el comentario a esa liacutenea
SOURCE DEST POLICY LOG LEVEL LIMITBURST$FW net ACCEPT
Las poliacuteticas anteriores
bull Permitiraacuten todas las solicitudes de conexiones desde la red local hacia internetbull Desacartaacuten (ignoraraacuten) todas las solicitudes de conexioacuten desde internet hacia su firewall o red localbull Opcionalmente aceptar todas las solicitudes de conexiones desde el firewall hacia internet (si levantoacute el
comentario de la poliacutetica adicional)bull Rechazaraacuten todas las otras solicitudes de conexioacuten
Es importante notar que las poliacuteticas Shorewal (y las reglas) refieren a conexiones y no flujo de paquetes Con las poliacuteticas definidas en el archivo etcshorewallpolicy como se muestra arriba las conexiones se permiten desde la zona loc a la zona net incluso aunque no esten permitidas las conexiones desde la zona loc al propio firewall
En este punto edite su etcshorewallpolicy y haga los cambios que considere
Interfaces de Red
El firewall tiene dos interfaces de red Donde si bien la conectividad es a traveacutes de cable modem o Modem DSL la Interface Externa seraacute el adaptador ethernet que se encuentre conectado a dicho Modem (eg eth0) a menos que conecte viacutea Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta por un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces querraacute poner CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Interna seraacute un adaptador ethernet (eth1 o eth0) y conectaraacute a un hub o switch Sus computadores se conectaraacuten al mismo hubswitch (nota Si tiene un uacutenico sistema interno puede conectarlo directamente al firewall usando un cable cruzado)
Alerta
No conecte la interface interna y externa al mismo hub o switch exceptuado para pruebas Usted puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en etcshorewallinterfaces para todas las interfaces comunes al mismo hubswitch Usando tal configuracioacuten con un firewall en produccioacuten no es para nada recomendable
La muestra two-interface de Shorewall asume que la interface externa es eth0 y que la interface interna es eth1 Si su configuracioacuten difiere tendraacute que modificar la muesta acordemente en el archivo etcshorewallinterfaces Mientra esteacute ahiacute puede revisar la lista de opciones que le son especiacuteficas para las interfaces Algunas pistas
Tip
Si su interface externa es ppp0 o ippp0 puede remplazar en la segunda columna detect con ldquo-rdquo (sin las comillas)
Tip
Si su interface externa es ppp0 o ippp0 o si tiene una direccioacuten IP estaacutetica puede eliminar dhcp de la lista de opciones
Tip
Si su interface interna es un puente (bridge) cree If your internal interface is a bridge create using the brctl utility then you must add the routeback option to the option list
Direcciones IP
Antes de seguir avanzando debemos decir unas cuantas palabras acerca de las direcciones Internet Protocol (IP) Normalmente su ISP le asignaraacute una uacutenica direccioacuten IP Puacuteblica Esta direccioacuten puede ser asignada viacutea Dynamic Host Configuration Protocol (DHCP) o como parte del establecimiento de su conexioacuten cuando disca (modem estandar) o establece su conexioacuten PPP En raras ocasiones su ISP le asignaraacute una direccioacuten IP estaacutetica esto significa que usted configuraraacute la interface exerna de su firewall para usar permanentemente esa direccioacuten Sin embargo su direccioacuten IP asignada seraacute compartida por todos sus sistemas cuando accedan a Internet Usted tendraacute que asignar sus propias direcciones en su red interna (la Interface Interna en su firewall maacutes las otras computadores) El RFC 1918 reserva varios rangos de direcciones Privadas IP para ese propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Antes de arrancar Shoreall usted debe ver la direccioacuten IP de su interface externa y si es una dentro de los rangos descritos arriba deberiacutea quitar la opcioacuten norfc1918 de la entrada que corresponde a su interface externa en etcshorewallinterfaces
Usted querraacute asignar sus direcciones desde la misma subred Para nuestros propoacutesitos podemos considerar una subred que consista de un rango de direcciones xyz0 - xyz255 Tal subred tendraacute una maacutescara de red de 2552552550 La direccioacuten xyz0 se reserva como la Direccioacuten de Subred y xyz255 se reserva como la Direccioacuten de Difusioacuten de la Subred (Boradcast) En Shorewall una subred se describe usando la notacioacuten Classless InterDomain Routing (CIDR) que consiste de direcciones de subred seguida de 24 El ldquo24rdquo se refiere a la cantidad de 1 consecutivos a la cabeza de la maacutescara de red
Rango 1010100 - 101010255
Direccioacuten de Subred 1010100
Direccioacuten de Difusioacuten 101010255
Notacioacuten CIDR 101010024
Es convencioacuten asignarle la primera direccioacuten utilizable en la subred a la interface interna (1010101 en el ejemplo anterior) o la uacuteltima (101010254)
Uno de los propoacutesitos de hacer subredes es permitir a todas las computadoras en la subred entender queacute otras computadoras pueden comunicarse con ellas directamente Para comunicarse con sistemas fuera de la subre los sistemas deben enviar los paquetes a su detino final a traveacutes de un gateway (enrutador)
Sus computadoras locales (computer 1 y computer 2 en el diagrama arriba) deben ser configuradas con el default gateway a la direccioacuten IP de la interface interna del firewall
La discusioacuten a continuacioacuten repasa por encima los temas de subredes y enrutamiento Si estaacute interesado en aprender maacutes acerca del direccionamiento y el enrutamiento IP si le recomienda altamente el libro ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0 (enlace)
El resto de esta guiacutea asume que tiene su red dispuesta de esta forma
El default gateway para las computdores 1 y 2 seriacutea 101010254
Alerta
Su ISP puede que le asigne una direccioacuten RFC 1918 para su interface externa Si dicha direccioacuten estaacute en la subred 101010024 entonces tendraacute que seleccionar una subred DIFERENTE RFC 1918 para su red local
Enmascaramiento IP (SNAT)
Las direcciones reservadas por el RFC 1918 son a veces referidas como no-ruteable debido a que los enrutadores en el corazoacuten de Internet no se renviacutean los paquetes IP cuando tienen como destino una direccioacuten RFC 1918 Cuando uno de su sistemas locales (digamos computer 1) enviacutea una solicitud de conexioacuten a una maacutequina en Internet el firewall debe hacer Network Address Translation (NAT Traduccioacuten de Direccioacuten de Red) El firewall rescribe la direccioacuten de origen en el paquete para que sea la direccioacuten de la interface externa del firewall en otras palabras el
firewall hace parecer que la solicitud de conexioacuten fueacute originada en el propio firewall Esto es necesario hacerlo para la maaacutequina destino sea capaz de enrutar la respuesta de vuelta hasta el firewall (recuerde que los paquetes cuyos destinos es una direccioacuten RFC 1918 no son enrutados a traveacutes de internet para que la respuesta vuelva su origen en computer 1) Cuando el firewall recibe un paquete de respuesta rescribe la direccioacuten de destino de vuelta a 1010101 y enviacutea el paquete a computer 1
En los sistemas Linux el proceso anterior es conocido como Enmascaramiento IP pero tambieacuten veraacute el uso del teacutermino Source Network Address Translation (SNAT) Shorewall sigue la convencioacuten que usa Netfilter
bull Enmascaramiento (Masquerade) describe el caso donde se permite al sistema firewall detectar automaacuteticamente la direccioacuten de la interface externa
bull SNAT se refiere al caso donde expliacutecitamente especifica la direccioacuten origen que desea usar en los paquetes salientes
En Shorewall tanto Enmascaramiento y SNAT se configuran con entradas en el archivo etcshorewallmasq Normalmente usaraacute Enmascaramiento si su direccioacuten IP en la interface externa es dinaacutemica y SNAT en el caso de direccioacuten IP estaacutetica
Si la interface externa de su firewall es eth0 no se necesita modificar el archivo provisto con la muestra De otra forma edite etcshorewallmasq y cambie la primera columna para que refleje el nombre de su interface externa y la segunda columna el nombre de su interface interna
Si su direccioacuten IP externa es estaacutetica puede enterarla en la tercrea columna en etcshorewallmasq si desea si bien su firewall funcionaraacute bien si no lo hace Enterar su direccioacuten IP estaacutetica en la tercera columna hace que procesar los paquetes salientes sea un poco maacutes eficiente
Si estaacute usando el paquete Debian por favor revise su archivo shorewallconf para asegurarse que lo siguiente esteacute escrito correctamente si no es asiacute caacutembielo apropiadamente
bull IP_FORWARDING=On
Desviacuteo de Puerto (DNAT)
Una de sus metas puede ser correr uno o mas servidores en sus sistemas locales Ya que dichas computadoras tienen direcciones RFC-1918 no es posible a los clientes en internet conectar directamente con ellas En cambio es necesario para dichos clientes dirigir sus solicitudes de conexioacuten hacia el firewall quien rescribe la direccioacuten destino a la direccioacuten de su servidor y enviacutea el paquete al servidor Cuando su servidor responde el firewall automaacuteticamente realiza SNAT para rescribir la direccioacuten origen en la respuesta
El proceso anterior es llamado Desviacuteo de Puerto o Port Forwarding o Destination Network Address Translation (DNAT) Usted puede configurar el desviacuteo de puerto usando las reglas DNAT en el archivo etcshorewallrules
La forma general de una regla de desviacuteo de puerto simple en etcshorewallrules es
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net locltserver local ip addressgt[ltserver portgt] ltprotocolgt ltportgt
Shorewall incorpora macros para muchas de las aplicaciones populares Revise en usrshareshorewallmacro para identificar los macros disponibles en su versioacuten Los macros simplemente crean reglas DNAT suministrando el protocolo y puerto(s) como se muestra en los siguientes ejemplos
Ejemplo 1 Servidor Web
Usted estaacute corriendo un Servidor Web en computer 2 y desea desviar el puerto entrante TCP 80 a este sistema
ACTION SOURCE DEST PROTO DEST PORT(S)WebDNAT net loc1010102
Ejemplo 2 Servidor FTP
Usted estaacute corriendo un Servidor FTP en computer 1 tal que desea entonces desviar el puerto entrante TCP 21 a ese sistema
ACTION SOURCE DEST PROTO DEST PORT(S)FTPDNAT net loc1010101
Para FTP necesitaraacute adicionalmente el motor de seguimiento de conexiones y el soporte NAT en su kernel Para los kernel provistos por el vendedor esto significa que los moacutedulos ip_conntrack_ftp y ip_nat_ftp deben ser cargados Shorewall cargaraacute automaacuteticamente dichos moacutedulos si estaacuten disponibles y localizados en el lugar estandar bajo libmodulesltkernel versiongtkernelnetipv4netfilter
Un par de puntos importantes a mantener en mente son
bull Usted debe probar la regla anterior desde un cliente externe a su red local (ie no pruebe desde un explorador en los computadores 1 o 2 o en el firewall) Si desea ser capaz de acceder a su servidor web yo ftp desde adentro de su fireall usando la direccioacuten IP de su interface externa vea Shorewall FAQ 2
bull Muchos ISPs bloquean las solicitudes entrantes al puerto 80 Si tiene problemas conectaacutendose a su servidor intente seguir la siguiente regla y conectar al puerto 5000
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net loc101010280 tcp 5000
En este punto modifique etcshorewallrules para agregar cualquier regla DNAT que se requiera
Importante
Cuando pruebe las reglas DNAT como las anteriores debe realizar las pruebas desde un cliente AFUERA de su fiewall (en la zona net ) Usted no puede probar estas reglas desde la parte interior del firewall
Para tips de Resolucioacuten de Problemas con DNAT vea FAQs 1a y 1b
Domain Name Server (DNS)
Normalmente cuando usted conecta con su ISP y como parte del proceso de obtener una direccioacuten IP el resolutor Domain Name Service (DNS) del firewall seraacute automaacuteticamente configurado (eg el archivo etcresolvconf seraacute rescrito) Alternativamente su ISP puede darle la direccioacuten IP de un par de servidores de nombre DNS para que manualmente los configure como servidores de nombre primario y secundario respectivamente Sin importar la forma en coacutemo se configuran los servidores DNS en su firewall es su responsabilidad configurar el resolutor en sus sistemas internos Puede escoger uno de dos caminos
bull Configura sus sistemas internos para que usen los servidores de nombre de su ISP Si su ISP le ha suministrado las direcciones de sus servidores DNS o de otros disponibles en su sitio web usted puede configurar sus sistemas internos para que usen dichas direcciones Si dicha informacioacuten no estaacute disponible vea en el archivo etcresolvconf de su sistema firewall -- los servidores de nombre son declarados con los registros nameserver en este archivo
bull Puede configurar un Cache Servidor de Nombres en su firewall Red Hattrade tiene un RPM para el cache servidor de nombres (el RPM tambieacuten requier el RPM bind) y para los usuarios Bering hay un dnscachelrp Si toma este camino usted configuraraacute sus sistemas internos para que usen el mismo firewall como su servidor primario (o uacutenico) de nombres Usariacutea la direccioacuten IP interna de su firewall (101010254 en el ejemplo anterior) como direccioacuten del servidor de nombres Para permitir a los sistemas locales hablar con el cache servidor de nombre deberaacute abrir el puerto 53 (ambos UDP y TCP) desde la red local hacia el firewall esto lo hace agregar las siguientes reglas en etcshorewallrules
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT loc $FW
Otras Conexiones
La muestra two-interface incluye las siguientes reglas
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT $FW net
Esta regla permite el acceso DNS desde su firewall y puede quitarse si ha quitado el comentario en la liacutenea de etcshorewallpolicy que permite todas las conexiones desde el firewall hacia internet
En la regla que se muestra arriba ldquoDNSACCEPTrdquo es un ejemplo de una invocacioacuten macro Shorewall incluye una cantidad de macros (vea usrshareshorewallmacro) y usted puede agregar los suyos
Usted no tiene que usar los macros cuando codifique las reglas en etcshorewallrules Shorewall arrancaraacute ligeramente maacutes raacutepido si codifica sus reglas directamente en vez de usar macros La regla anterior tambieacuten pudo haber sido codificada asiacute
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW net udp 53ACCEPT $FW net tcp 53
En los casos donde Shorewall no incluya un macro que satisfaga sus necesidades puede ya sea definir un nuevo macro o simplemente codificar las reglas apropiadas directamente
La muestra tambieacuten incluye
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT loc $FW
Esta regla permite correr el servidor SSH en su firewall y conectarse a eacutel desde los sistemas locales
Si desea habilitar otras conexiones desde su firewall a otros sistemas el formato general usando macros es
ACTION SOURCE DEST PROTO DEST PORT(S)ltmacrogtACCEPT $FW ltdestination zonegt
El formato general cuando no se usan macros predefinidos es
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW ltdestination zonegt ltprotocolgt ltportgt
Ejemplo 3 Servidor Web en el Firewall
Usted desea correr un servidor Web en su sistema firewall
ACTION SOURCE DEST PROTO DEST PORT(S)WebACCEPT net $FWWebACCEPT loc $FW
Estas dos reglas por supuesto seriacutean un agregado a las reglas listadas arriba bajo ldquoPuede configurar un Cache Servidor de Nombres en su firewall rdquo
Si no sabe queacute puerto y protcolo usa una aplicacioacuten particular mire aquiacute
Importante
No recomendados habilitar telnet desdehacia internet porque usa texto en claro para su comunicacioacuten (incluso para el login) Si desea acceso shell para su firewall desde Internet use SSH
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT net $FW
Los usuarios Bering querraacuten agregar las siguientes dos reglas para ser compatibles con la configuracioacuten Shorewall de Jacques
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT loc $FW udp 53 Allow DNS Cache to workACCEPT loc $FW tcp 80 Allow Weblet to work
Ahora edite su archivo etcshorewallrules para agregar o eliminar otras conexiones como se necesario
Algunos Concejos a Mantener en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque enviacutee solicitudes de conexioacuten a la direccioacuten IP de la interface externa de su firewall no significa que la solicitud seraacute asociada con la interface externa o con la zona ldquonetrdquo Cualquier traacutefico que se genere desde la red local seraacute asociado con su interface local y seraacute tratado como traacutefico loc-gtfw
bull Las direcciones IP son propiedades de los sistemas no de las interfaces Es un error pensar que su firewall sea capaz de renviar paquetes soacutelo porque puede hacerle ping a la direccioacuten IP de todas las interfaces IP del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping exitoso es que el enlace entre el sistema local y el firewall funciona bien y que probablemente tenga bien configurado el default gateway del sistema local
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zonas loc poniendo una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO necesariamente siguen automaacuteticamente el camino reverso al tomado por el paquete original de solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso en su camino Este tema usualmente salta a la palestra cuando se instala un firewall Shorewallall en paralelo a un gateway existente y se intenta usar DNAT a traveacutes del Shorewall sin cambiar el default gateway en el sistema que recibe la solicitud renviada Las solicitudes
entraraacuten por el firewall Shorewall donde la direccioacuten IP destino es rescrita pero la respuesta sale sin modificacioacuten por medio del gateway antiguo
bull Shorewall no tiene nocioacuten de adentro o afuera por siacute mismo Estos conceptos se incorporan en el coacutemo se configura Shorewall
Arrancando y Deteniendo Su Firewall
El procedimiento de instalacioacuten configura su sistema para arrancar Shorewall al arrancar (boot) el sistema pero el inicio de Shorewall estaacute deshabilitado por omisioacuten en su configuracioacuten asiacute que no intente arrancar su Shorewall hasta que termine la configuracioacuten Una vez que se hay completado la configuracioacuten de su firewall debe editar su etcshorewallshorewallconf y poner STARTUP_ENABLED=Yes
Importante
Los usuarios del paquete deb deben editar etcdefaultshorewall y poner startup=1
El firewall se arranca usando el comando ldquoshorewall startrdquo y se detiene con el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado para aquellas maacutequinas que tengan una entrada en el archivo etcshorewallroutestopped Un firewall detenido debe ser reiniciado usando el comando ldquoshorewall restartrdquo Si desea eliminar totalmente todo rastro de Shorewall de su configuracioacuten Netfilter use el comando ldquoshorewall clearrdquo
Esta muestra two-interface asume que usted desea habilitar el enrutamiento desdehacia eth1 (la red local) cuando Shorewall estaacute detenido Si su red local no estaacute conectada a eth1 o si desea habilitar el acceso desdehacia otras maacutequinas cambie apropiadamente el archivo etcshorewallroutestopped
Alerta
Si usted estaacute conectado a su firewall desde internet no enviacutee el comando ldquoshorewall stoprdquo a menos que haya agregado una entrada con la direccioacuten IP desde donde se conectoacute al archivo etcshorewallroutestopped Tampoco recomendamos usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarla con el comando ldquoshorewall tryrdquo
Lectura Adicional Recomendada
Se le recomienda altamente la paaacutegina Archivo de Facilidades de Configuracioacuten Comunes -- contiene tips uacutetiles acerca de las facilidades Shorewall que hacen maacutes faacutecil la administracioacuten del firewall Shorewall
Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
Una vez que tiene su arreglo de dos interfaces funcionando el siguiente paso loacutegico es agregar una conexioacuten de red inalaacutembrica El primer paso es agergar la tarjeta de red adicional a su firewall ya sea una tarjeta inalaacutembirca o una tarjeta ethernet que conecte a un punto de acceso inalaacutembirco
Precaucioacuten
Cuando agrega una tarjeta de red eacutesta no seraacute necesariamente detectada como la siguiente interface ethernet superior Por ejemplo si tiene dos interfaces ethernet en su sistema (eth0 and eth1) y agrega una tercera tarjeta que usa el mismo manejador (driver) de alguna de las dos anteriores la tercera no necesariamente seraacute detectada como eth2 mal pudiera ser detectada como eth0 o eth1 Usted puede ya sea vivir con ello o puede intercambiar las tarjetas en los soacutecates hasta que la nueva tarjeta sea detectada como eth2
Su nuevo arreglo de red luciraacute similar a la figura siguiente
La primera cosa notable es que las computadores en su red inalaacutembrica estan en una subred diferente a los de su red cableada en la LAN En el ejemplo de arriba hemos escogido usar la red 101011024 Las computadoras 3 y 4 seriacutean configuradas con la direccioacuten IP del default gateway IP a 101011254
Segundo hemos escogido incluir la red inalaacutembrica como parte de la zona local Ya que Shorewall permite el traacutefico en-la-zona por omisioacuten el traacutefico puede fluir libremente entre la red cableada local y la red inalaacutembrica
Hay soacutelo dos cambios necesarios para nuestra configuracioacuten Shorewall
bull Se necesita agregar una entrada a etcshorewallinterfaces para la interface de red inalaacutembrica Si la interface inalaacutembrica es wlan0 la entrada puede lucir asiacute
ZONE INTERFACE BROADCAST OPTIONSloc wlan0 detect maclist
Como se muestra en la entrada anterior se recomienda usar la opcioacuten maclist para el segmento inalaacutembrico En paralelo agregue las entradas para las computadoras 3 y 4 en etcshorewallmaclist para prevenir que sus vecinos obtengan una conexioacuten gratuita a internet a sus expensas Comience por omitir esta opcioacuten cuando tenga todo funcionando entonces agregue esta opcioacuten y configure su archivo etcshorewallmaclist
bull Usted necesita agregar una entrada al archivo etcshorewallmasq para enmascarar el traacutefico desde la red inalaacutembrica hacia internet Si su interface hacia internet es eth0 y su interface inalaacutembrica es wlan0 la entrada seriacutea asiacute
INTERFACE SUBNET ADDRESSeth0 wlan0
Otra cosa a notar para poner la red de Microsofttrade a funcionar entre las redes inalaacutembrica y cableada necesitaraacute ya sea un servidor WINS o un PDC Yo personalmente uso Samba configurado como servidor WINS corriendo en mi firewall Correr un servidor WINS en el firewall requiere las reglas que se listan en documentacioacuten ShorewallSamba
Guiacutea de Configuracioacuten de Shorewall
Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
Precaucioacuten
Este artiacuteculo aplica a Shorewall 30 en adelante Si estaacute corriendo una versioacuten previa de Shorewall 300 entonces por favor vea la documentacioacuten para dicha liberacioacuten
Introduccioacuten
Esta guiacutea estaacute destinada a los usuarios que desean configurar Shorewall en entornos donde un conjunto de direcciones IP puacuteblicas deben ser manejadas Para quienes desean conocer maacutes acerca de Shorewall en otros entornos revise las Guiacuteas Raacutepidas de Shorewall Debido a las amplias diferentes posibles aplicaciones la Guiacutea le daraacute directrices y apuntaraacute hacia otros recursos si ello es necesario
Precaucioacuten
Shorewall requiere el paquete iprouteiproute2 instalado (en RedHat el paquete se llama iproute) Usted puede saber si el paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando ldquowhichrdquo para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se recomienda que primero lea la guiacutea para que se familiarice con lo que estaacute involucrado y luego vuelva hacia atraacute y comience sobre los cambios de configuracioacuten requeridos Los puntos donde se recomiendan cambios de
configuracioacuten se sentildealan con
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windows usted debe salvarlos como archivos Unix si su editor soporta dicha opcioacuten o debe ejecutar dicho archivo con dos2unix antes de usarlo con Shorewall De forma similar si copia un archivo de configuracioacuten desde su disco duro en Windows a un disco flexible debe ejecutar previamente dos2unix contra la copia antes de usarla con Shorewall
bull Enlace a versioacuten Windows de dos2unix httpwwwsimtelnetpubpd51438html bull Enlace a versioacuten Linux de dos2unix httpwwwmegalomancom7Ehanysoftwarehd2u
Conceptos de Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall para la mayoriacutea de las configuraciones soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea El esqueleto de archivos de configuracioacuten es creado durante el Proceso de Instalacioacuten de Shorewall
Alerta
Nota para los Usuarios Debian
Si instala usando un deb encontraraacute que el directorio etcshorewall estaacute vaciacuteo Esto es intencional Los archivos del esqueleto correspondientes a la liberacioacuten correspondiente pueden encotrarse en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no los modifica
En la medida que introducimos cada archivo sugerimos que revise dicho archivo en su sistema cada archivo contiene instrucciones detalladas de configuracioacuten
Shorewall ve la red donde estaacute corriendo como si estuviera compuesta de un conjunto de zonas En esta guiacutea usaremos las siguientes zonas
fw
El propio sistema firewall
net
La red puacuteblica Internet
loc
La red local privada que usa direcciones IP privadas
dmz
Una Zona Desmilitarizada que aloja servidores de acceso puacuteblico
Las zonas se definen en el archivo etcshorewallzones
Importante
El archivo etcshorewallzones incluiacutedo en la distribucioacuten estaacute vaciacuteo Usted puede crear el conjunto de zonas estandar descritas anteriormente copiando y pegando el siguiente contenido en dicho archivo
ZONE TYPE OPTIONSfw firewallnet ipv4loc ipv4dmz ipv4
Note que Shorewall reconoce al sistema firewall como su propia zona El ejemplo anterior sigue la convencioacuten usual de nombres zona firewall fw El nombre especificado para la zona firewall (fw en el ejemplo anterior) se almacena en la variable shell $FW cuando se procesa el archivo etcshorewallzones Con la excepcioacuten del nombre asignado a la zona firewall Shorewall no asocia ninguacuten significado especial a los nombes de zona Las zonas son lo que USTED hace de ellas Ello significa que no debe esperar que Shorewall haga algo especial porque esta es la zona interna o porque esta es la zona DMZ
Edite el archivo etcshorewallzones y haga los cambios necesarios
La reglas acerca de queacute traacutefico permitir y negar se expresan en teacuterminos de las zonas
bull Usted expresa la poliacutetica por omisioacuten para conexiones desde una a otra zona en el archivo etcshorewallpolicy
bull Usted define excepciones a dichas poliacuteticas en etcshorewallrules
Shorewall se construye sobre el motor de kernel Netfilter Netfilter implementa la funcioacuten de seguimiento de conexiones que permite lo que se denomina como inspeccioacuten por estado (stateful inspection) de paquetes Esta capacidad de manejar los estados permite que las reglas de firewall sean definidas en teacuterminos de conexiones en vez de paquetes Con Shorewall usted
1 Identifica la zona origen (cliente)2 Identifica la zona destino (servidor)3 Si la POLITICA de la zona cliente a la zona servidor es lo que desea para esta pareja clienteservidor no
necesita hacer nada adicional4 Si la POLITICA no es lo que desea entonces debe agregar una regla La regla se expresa en teacuterminos de la
zona del cliente y de la zona del servidor
Soacutelo porque las conexiones de un tipo particular desde la zona A hacia el firewall estaacuten permitidas y que tambieacuten estaacuten permitidas desde el firewall a la zona B NO sigifica que estas conexiones esten permitidas entre la zona A y la zona B (en otras palabras las poliacuteticas y reglas que involucran a la zona firewall no son transitivas) A cambio significa que usted puede tener un proxy corriendo en el firewall que acepta conexiones desde la zona A y luego establece conexiones separadas por siacute mismo desde el firewall hacia la zona B
Para cada solicitud de conexioacuten que entra al firewall la solicitud se chequea primero contra el archivo etcshorewallrules Si ninguna regla del archivo aplica se aplica a la solicitud de conexioacuten la primera poliacutetica en etcshorewallpolicy que corresponda con dicha solicitud despueacutes de que haya pasado por la accioacuten comuacuten apropiada (si existe alguna)
Previo a Shorewall 220 el archivo por omisioacuten etcshorewallpolicy teniacutea las siguientes poliacuteticas
SOURCE ZONE DESTINATION ZONE POLICY LOG LIMITBURST LEVELloc net ACCEPTnet all DROP infoall all REJECT info
Importante
El archivo de poliacuteticas de la versioacuten actual estaacute vaciacuteo Usted puede copiar y pegar las entradas anteriores para crear un punto de partida para luego personalizar sus poliacuteticas
Las poliacuteticas anteriores haraacuten que
1 permitiraacute todas las solicitudes de conexiones desde la red local hacia internet2 descartaraacute (ignoraraacute) todas las solicitudes de conexiones desde internet hacia su firewall o red local y se
registra un mensaje a nivel informativo (info level log vea aquiacute la descripcioacuten de los niveles de registro)3 rechaza todas las solicitudes de conexiones y registra un mensaje a nivel informativo Cuando una solicitud
se rechaza el firewall devuelve un RST (si el protocolo es TCP) o un paquete ICMP de puerto-inalcanzabe para los otros protocolos
En este punto edite su archivo etcshorewallpolicy y haga los cambios que desee
Interfaces de Red
Para el resto de esta guiacutea nos referiremos al siguiente diagrama Si bien puede que no luzca como el de su red puede usarse para ilustrar los aspectos importantes de la configuracioacuten Shorewall
En este diagrama
bull La Zona DMZ consiste de los sistemas DMZ 1 y DMZ 2 Una DMZ se usa para aislar su servidors accesibles desde internet de sus sistemas locales tal que si uno de esos servidores estaacute comprometido auacuten tendraacute el firewall entre el sistema comprometido y sus sistemas en la red local
bull La Zona Local consiste de los sistemas Local 1 Local 2 y Local 3bull Todos los sistemas desde el ISP hacia afuera componen la Zona Internet
La forma maacutes cimple de definir zonas es asociar el nombre de la zona (previamente definida en etcshorewallzones) con una interface de red Esto se hace en el archivo etcshorewallinterfaces El firewall ilustrado arriba tiene tres interfaces de red Donde la conectividad hacia Internet es hecha a traveacutes de un cable Modem o DSL la Interface Externa seraacute un adaptador Ethernet que se ecneuntra conectado al Modem (eg eth0) a menos que conecte usando Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta usando un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces desearaacute establecer CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Local seraacute un adaptador Ethernet (eth0 eth1 o eth2) y conectaraacute a un hub o switch Sus computadores locales estaraacuten conectadas al mismo switch o hub (nota Si tiene un uacutenico sistema local puede conectar directamente el firewall al computador utilizando un cable cruzado)
Su Interface DMZ tambieacuten seraacute un adaptador Ethernet (eth0 eth1 o eth2) y se conectaraacute a un hub o switch Sus computadores DMZ seraacuten conectados al mismo switch o hub (nota Si tiene un uacutenico sistema DMZ puede conectar directamente el firewall al computador usando un cable cruzado)
Precaucioacuten
No conecte la interace interna y externa al mismo hub o switch exceptuando para pruebas Y estaacute corriendo Shorewall 147 o superior Cuando use estas versiones recientes puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en el archivo etcshorewallinterfaces para todas las interfaces conectadas al mismo hubswitch No se recomienda utilizar tal configuracioacuten con un firewall de produccioacuten
Para el resto de esta guiacutea asumiremos que
bull La Interface Externa es eth0bull La Interface Local es eth1bull La Interface DMZ es eth2
La cinfiguracioacuten Shorewall por omisioacuten no define el contenido de ninguna zona Para definir la configuracioacuten de arriba usando el archivo etcshorewallinterfaces dicho archivo contendriacutea
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectdmz eth2 detect
Note que la zona $FW no tiene una entrada en el archvio etcshorewallinterfaces
Edite el archivo etcshorewallinterfaces y defina las interfaces de red de su firewall asociadas con su zona Si tiene una zona disponible a traveacutes de maacutes de una interface de red simplemente incluya una entrada para cada interface y repita el nombre de zona tantas veces como haga falta con su respectiva interface de red
Ejemplo 1 Muacuteltiples Interfaces hacia una Zona
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectloc eth2 detect
Usted puede definir zonas maacutes complicadas usando el archivo etcshorewallhosts pero en la mayoriacutea de los casos ello no es necesario Vea Shorewall_and_Aliased_Interfaceshtml y Multiple_Zoneshtml para algunos ejemplos
Direccionamiento Subredes y Enrutamiento
Normalmente su ISP le asignaraacute un conjunto de direcciones IP Puacuteblicas Usted configuraraacute su interface externa de su firewall para que use una de dichas direcciones permanentemente y entonces tendraacute que decidir como usaraacute el resto de sus direcciones Antes de que contestemos esta pregunta es conveniente primero revisar los fundamentos
Si usted estaacute ampliamente familiarizado con el direccionamiento IP y el enrutamiento puede ir directo a la proacutexima seccioacuten
La siguiente discusioacuten revisa someramente el direccionamiento y el enrutamiento IP Si estaacute interesado en aprender maacutes acerca del tema le recomendaos ampliamente ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0
Direcciones IP
Las direcciones IP versioacuten 4 (IPv4) son nuacutemeros de 32 -bits La notacioacuten wxyz refiere a una direccioacuten donde el byte de orden superior tiene el valor ldquowrdquo el proacuteximo byte tiene el valor ldquoxrdquo etc Si tomamos la direccioacuten 1920214 y la expresamos en hexadecimal obtenemos
C000020E
o viacuteendolo como un entero de 32-bits
C000020E
Subredes
Usted comenzaraacute a escuchar los teacuterminos ldquored Clase Ardquo ldquored Clase B y red Clase C En los primeros diacuteas de IP las redes veniacutean en tres tamantildeos (existiacutea tambieacuten redes Clase D pero era usada de forma diferente)
Clase A - maacutescara de red 255000 size = 2 24Clase B - maacutescara de red 25525500 size = 2 16
Clase C - maacutescara de red 2552552550 size = 256
La clase de una red era determinada uniacutevocamente por el valor del byte superior de su direccioacuten tal que usted pudiera ver la direccioacuten IP e inmediatamente determinara la maacutescara asociada La maacutescara de red es un nuacutemero que cuando se aplica un Y loacutegico con la direccioacuten separa la direccioacuten de red del resto que es la direccioacuten de host Por ejemplo la direccioacuten Clase C 1920214 la direccioacuten de red es el hexadecimal C00002 y el nuacutemero de host es 0E
En la medida que internet crecioacute se hizo claro que tal particionamiento tan grueso de direcciones de 32-bits iva a ser muy limitante (iexclPreviamente a las grandes corporaciones y universidades le fueron asignadas sus propias redes clase A) Despueacutes de unos arranques en falso la teacutecnica de subredes evolucionoacute al sistema actual de redes maacutes pequentildeas la teacutecnica se le refiere como Classless InterDomain Routing (CIDR) Hoy diacutea cualquier sistema que usted probablemente use entenderaacute CIDR y las redes basadas en clases son ya algo del pasado
Una subred es un conjunto contiguo de direcciones IP tal que
1 La cantidad de direcciones en el conjunto es una potencia de 2 y2 La primera direccioacuten en el conjunto es un muacuteltiplo del tamantildeo del conjunto3 La primera direccioacuten en la subred se reserva y se le refiere como la direccioacuten de subred4 La uacutetima direccioacuten en la subred estaacute reservada como la direccioacuten de difusioacuten(broadcast) de la subred
Como puede ver por definicioacuten en cada subred de tamantildeo n hay (n - 2) direcciones utilizables (direcciones que se pueden asignar a maacutequinas) La primera y uacuteltima direccioacuten en la subred son utilizadas como direccioacuten de la subred y direccioacuten de difusioacuten respectivamente En consecuencia las subredes maacutes pequentildeas desperdician maacutes direcciones IP que las redes maacutes grandes
Ya que n es una potencia de dos faacutecilmente podemos calcular el Logaritmo-Base2 (log2) de n Para los tamantildeos maacutes comunes de subred el tamantildeo y su logaritmos base 2 son dados por la siguiente tabla
Tabla 1 Logaritmos Base-2
n log2 n (32 - log2 n)
8 3 29
16 4 28
32 5 27
64 6 26
128 7 25
256 8 24
512 9 23
1024 10 22
2048 11 21
4096 12 20
8192 13 19
16384 14 18
32768 15 17
65536 16 16
Notaraacute que la tabla arriba tambieacuten contiene una columna parar (32 - log2 n) Este nuacutemero es la Variable Length Subnet Mask (VLSM) para una red de tamantildeo n De la tabla arriba podemos derivar la siguiente que es un poco maacutes faacutecil de usar
Tabla 2 VLSM
Subnet Size VLSM Subnet Mask
8 29 255255255248
16 28 255255255240
32 27 255255255224
64 26 255255255192
128 25 255255255128
256 24 2552552550
512 23 2552552540
1024 22 2552552520
2048 21 2552552480
4096 20 2552552400
8192 19 2552552240
16384 18 2552551920
32768 17 2552551280
65536 16 25525500
2 24 8 255000
Note que la VLSM se escribe con barra (ldquordquo) -- a menudo escucharaacute de una subred de tamantildeo 64 referida como una subred ldquobarra 26rdquo y una de tamantildeo 8 referida como de ldquobarra 29rdquo
La maacutescara de subred es simplemente un nuacutemero de 32 bits con los primeros ldquoVLSMrdquo bits puestos a uno y los remanentes bits puestos a cero Por ejemplo para una subred de tamantildeo 64 la maacutescara de subred tiene los primeros 26 bits en uno
11111111111111111111111111000000 = FFFFFFC0 = FFFFFFC0 = 255255255192
La maacutescara de subred tiene la propiedad de que si se hace un Y loacutegico con una direccioacuten en la subred el resultado es la direccioacuten de la subred Igual de importante si hace un Y loacutegico de la maacutescara de subre con una direccioacuten fuera de la subred el resultado NO es la direccioacuten de la subred Como ya veremos esta propiedad de la maacutescara de subred es muy uacutetil para el enrutamiento
Para una subred cuya direccioacuten es abcd y cuyo Variable Length Subnet Mask es v denotamos la subred como ldquoabcdvrdquo usando Notacioacuten CIDR Ejemplo
Tabla 3 Subred
Subred 1010100 - 101010127
Tamantildeo Subred 128
Direccioacuten Subred 1010100
Direccioacuten Difusioacuten 101010127
Notacioacuten CIDR 101010025
Existen dos subredes degeneradas que merecen ser nombradas la subred con un miembro y la subre con 2 32 miembros
Tabla 4 32 y 0
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
Las zonas se definen en el archivo etcshorewallzones
Note que Shorewall reconoce el sistema firewall como su propia zona - cuando se procesa el archivo etcshorewallzones el nombre de la zona firewall se almacena en la variable shell $FW que puede usarse para referirse a la zona del firewall a lo largo de la configuracioacuten de Shorewall
Las reglas acerca del traacutefico a permitir o rechazar se expresan en teacuterminos de zonas
bull Usted expresa su poliacutetica por omisioacuten para las conexiones desde una zona a otra en el archivo etcshorewallpolicy
bull Usted define excepciones para dichas poliacuteticas por omisioacuten en el archivo etcshorewallrules
Para cada solicitud de conexioacuten que ingresa al firewall la solicitud se verifica primero contra el archivo etcshorewllrules Si no aplica ninguna regla para la solicitud de conexioacuten entonces la primera poliacutetica en etcshorewallpolicy que coincida se aplica Si hay una accioacuten comuacuten definida para la poliacutetica en etcshorewallactions o usrshareshorewallactionsstd entonces esa accioacuten se ejecuta antes de la poliacutetica
El archivo etcshorewallpolicy que se incluye con la muestra two-interface tiene las siguientes poliacuteticas
SOURCE DEST POLICY LOG LEVEL LIMITBURSTloc net ACCEPTnet all DROP infoall all REJECT info
En la muestra two-interface la liacutenea abajo estaacute incluida pero estaacute comentada Si desea que su sistema firewall tenga acceso completo a los servidores en internet quite el comentario a esa liacutenea
SOURCE DEST POLICY LOG LEVEL LIMITBURST$FW net ACCEPT
Las poliacuteticas anteriores
bull Permitiraacuten todas las solicitudes de conexiones desde la red local hacia internetbull Desacartaacuten (ignoraraacuten) todas las solicitudes de conexioacuten desde internet hacia su firewall o red localbull Opcionalmente aceptar todas las solicitudes de conexiones desde el firewall hacia internet (si levantoacute el
comentario de la poliacutetica adicional)bull Rechazaraacuten todas las otras solicitudes de conexioacuten
Es importante notar que las poliacuteticas Shorewal (y las reglas) refieren a conexiones y no flujo de paquetes Con las poliacuteticas definidas en el archivo etcshorewallpolicy como se muestra arriba las conexiones se permiten desde la zona loc a la zona net incluso aunque no esten permitidas las conexiones desde la zona loc al propio firewall
En este punto edite su etcshorewallpolicy y haga los cambios que considere
Interfaces de Red
El firewall tiene dos interfaces de red Donde si bien la conectividad es a traveacutes de cable modem o Modem DSL la Interface Externa seraacute el adaptador ethernet que se encuentre conectado a dicho Modem (eg eth0) a menos que conecte viacutea Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta por un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces querraacute poner CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Interna seraacute un adaptador ethernet (eth1 o eth0) y conectaraacute a un hub o switch Sus computadores se conectaraacuten al mismo hubswitch (nota Si tiene un uacutenico sistema interno puede conectarlo directamente al firewall usando un cable cruzado)
Alerta
No conecte la interface interna y externa al mismo hub o switch exceptuado para pruebas Usted puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en etcshorewallinterfaces para todas las interfaces comunes al mismo hubswitch Usando tal configuracioacuten con un firewall en produccioacuten no es para nada recomendable
La muestra two-interface de Shorewall asume que la interface externa es eth0 y que la interface interna es eth1 Si su configuracioacuten difiere tendraacute que modificar la muesta acordemente en el archivo etcshorewallinterfaces Mientra esteacute ahiacute puede revisar la lista de opciones que le son especiacuteficas para las interfaces Algunas pistas
Tip
Si su interface externa es ppp0 o ippp0 puede remplazar en la segunda columna detect con ldquo-rdquo (sin las comillas)
Tip
Si su interface externa es ppp0 o ippp0 o si tiene una direccioacuten IP estaacutetica puede eliminar dhcp de la lista de opciones
Tip
Si su interface interna es un puente (bridge) cree If your internal interface is a bridge create using the brctl utility then you must add the routeback option to the option list
Direcciones IP
Antes de seguir avanzando debemos decir unas cuantas palabras acerca de las direcciones Internet Protocol (IP) Normalmente su ISP le asignaraacute una uacutenica direccioacuten IP Puacuteblica Esta direccioacuten puede ser asignada viacutea Dynamic Host Configuration Protocol (DHCP) o como parte del establecimiento de su conexioacuten cuando disca (modem estandar) o establece su conexioacuten PPP En raras ocasiones su ISP le asignaraacute una direccioacuten IP estaacutetica esto significa que usted configuraraacute la interface exerna de su firewall para usar permanentemente esa direccioacuten Sin embargo su direccioacuten IP asignada seraacute compartida por todos sus sistemas cuando accedan a Internet Usted tendraacute que asignar sus propias direcciones en su red interna (la Interface Interna en su firewall maacutes las otras computadores) El RFC 1918 reserva varios rangos de direcciones Privadas IP para ese propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Antes de arrancar Shoreall usted debe ver la direccioacuten IP de su interface externa y si es una dentro de los rangos descritos arriba deberiacutea quitar la opcioacuten norfc1918 de la entrada que corresponde a su interface externa en etcshorewallinterfaces
Usted querraacute asignar sus direcciones desde la misma subred Para nuestros propoacutesitos podemos considerar una subred que consista de un rango de direcciones xyz0 - xyz255 Tal subred tendraacute una maacutescara de red de 2552552550 La direccioacuten xyz0 se reserva como la Direccioacuten de Subred y xyz255 se reserva como la Direccioacuten de Difusioacuten de la Subred (Boradcast) En Shorewall una subred se describe usando la notacioacuten Classless InterDomain Routing (CIDR) que consiste de direcciones de subred seguida de 24 El ldquo24rdquo se refiere a la cantidad de 1 consecutivos a la cabeza de la maacutescara de red
Rango 1010100 - 101010255
Direccioacuten de Subred 1010100
Direccioacuten de Difusioacuten 101010255
Notacioacuten CIDR 101010024
Es convencioacuten asignarle la primera direccioacuten utilizable en la subred a la interface interna (1010101 en el ejemplo anterior) o la uacuteltima (101010254)
Uno de los propoacutesitos de hacer subredes es permitir a todas las computadoras en la subred entender queacute otras computadoras pueden comunicarse con ellas directamente Para comunicarse con sistemas fuera de la subre los sistemas deben enviar los paquetes a su detino final a traveacutes de un gateway (enrutador)
Sus computadoras locales (computer 1 y computer 2 en el diagrama arriba) deben ser configuradas con el default gateway a la direccioacuten IP de la interface interna del firewall
La discusioacuten a continuacioacuten repasa por encima los temas de subredes y enrutamiento Si estaacute interesado en aprender maacutes acerca del direccionamiento y el enrutamiento IP si le recomienda altamente el libro ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0 (enlace)
El resto de esta guiacutea asume que tiene su red dispuesta de esta forma
El default gateway para las computdores 1 y 2 seriacutea 101010254
Alerta
Su ISP puede que le asigne una direccioacuten RFC 1918 para su interface externa Si dicha direccioacuten estaacute en la subred 101010024 entonces tendraacute que seleccionar una subred DIFERENTE RFC 1918 para su red local
Enmascaramiento IP (SNAT)
Las direcciones reservadas por el RFC 1918 son a veces referidas como no-ruteable debido a que los enrutadores en el corazoacuten de Internet no se renviacutean los paquetes IP cuando tienen como destino una direccioacuten RFC 1918 Cuando uno de su sistemas locales (digamos computer 1) enviacutea una solicitud de conexioacuten a una maacutequina en Internet el firewall debe hacer Network Address Translation (NAT Traduccioacuten de Direccioacuten de Red) El firewall rescribe la direccioacuten de origen en el paquete para que sea la direccioacuten de la interface externa del firewall en otras palabras el
firewall hace parecer que la solicitud de conexioacuten fueacute originada en el propio firewall Esto es necesario hacerlo para la maaacutequina destino sea capaz de enrutar la respuesta de vuelta hasta el firewall (recuerde que los paquetes cuyos destinos es una direccioacuten RFC 1918 no son enrutados a traveacutes de internet para que la respuesta vuelva su origen en computer 1) Cuando el firewall recibe un paquete de respuesta rescribe la direccioacuten de destino de vuelta a 1010101 y enviacutea el paquete a computer 1
En los sistemas Linux el proceso anterior es conocido como Enmascaramiento IP pero tambieacuten veraacute el uso del teacutermino Source Network Address Translation (SNAT) Shorewall sigue la convencioacuten que usa Netfilter
bull Enmascaramiento (Masquerade) describe el caso donde se permite al sistema firewall detectar automaacuteticamente la direccioacuten de la interface externa
bull SNAT se refiere al caso donde expliacutecitamente especifica la direccioacuten origen que desea usar en los paquetes salientes
En Shorewall tanto Enmascaramiento y SNAT se configuran con entradas en el archivo etcshorewallmasq Normalmente usaraacute Enmascaramiento si su direccioacuten IP en la interface externa es dinaacutemica y SNAT en el caso de direccioacuten IP estaacutetica
Si la interface externa de su firewall es eth0 no se necesita modificar el archivo provisto con la muestra De otra forma edite etcshorewallmasq y cambie la primera columna para que refleje el nombre de su interface externa y la segunda columna el nombre de su interface interna
Si su direccioacuten IP externa es estaacutetica puede enterarla en la tercrea columna en etcshorewallmasq si desea si bien su firewall funcionaraacute bien si no lo hace Enterar su direccioacuten IP estaacutetica en la tercera columna hace que procesar los paquetes salientes sea un poco maacutes eficiente
Si estaacute usando el paquete Debian por favor revise su archivo shorewallconf para asegurarse que lo siguiente esteacute escrito correctamente si no es asiacute caacutembielo apropiadamente
bull IP_FORWARDING=On
Desviacuteo de Puerto (DNAT)
Una de sus metas puede ser correr uno o mas servidores en sus sistemas locales Ya que dichas computadoras tienen direcciones RFC-1918 no es posible a los clientes en internet conectar directamente con ellas En cambio es necesario para dichos clientes dirigir sus solicitudes de conexioacuten hacia el firewall quien rescribe la direccioacuten destino a la direccioacuten de su servidor y enviacutea el paquete al servidor Cuando su servidor responde el firewall automaacuteticamente realiza SNAT para rescribir la direccioacuten origen en la respuesta
El proceso anterior es llamado Desviacuteo de Puerto o Port Forwarding o Destination Network Address Translation (DNAT) Usted puede configurar el desviacuteo de puerto usando las reglas DNAT en el archivo etcshorewallrules
La forma general de una regla de desviacuteo de puerto simple en etcshorewallrules es
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net locltserver local ip addressgt[ltserver portgt] ltprotocolgt ltportgt
Shorewall incorpora macros para muchas de las aplicaciones populares Revise en usrshareshorewallmacro para identificar los macros disponibles en su versioacuten Los macros simplemente crean reglas DNAT suministrando el protocolo y puerto(s) como se muestra en los siguientes ejemplos
Ejemplo 1 Servidor Web
Usted estaacute corriendo un Servidor Web en computer 2 y desea desviar el puerto entrante TCP 80 a este sistema
ACTION SOURCE DEST PROTO DEST PORT(S)WebDNAT net loc1010102
Ejemplo 2 Servidor FTP
Usted estaacute corriendo un Servidor FTP en computer 1 tal que desea entonces desviar el puerto entrante TCP 21 a ese sistema
ACTION SOURCE DEST PROTO DEST PORT(S)FTPDNAT net loc1010101
Para FTP necesitaraacute adicionalmente el motor de seguimiento de conexiones y el soporte NAT en su kernel Para los kernel provistos por el vendedor esto significa que los moacutedulos ip_conntrack_ftp y ip_nat_ftp deben ser cargados Shorewall cargaraacute automaacuteticamente dichos moacutedulos si estaacuten disponibles y localizados en el lugar estandar bajo libmodulesltkernel versiongtkernelnetipv4netfilter
Un par de puntos importantes a mantener en mente son
bull Usted debe probar la regla anterior desde un cliente externe a su red local (ie no pruebe desde un explorador en los computadores 1 o 2 o en el firewall) Si desea ser capaz de acceder a su servidor web yo ftp desde adentro de su fireall usando la direccioacuten IP de su interface externa vea Shorewall FAQ 2
bull Muchos ISPs bloquean las solicitudes entrantes al puerto 80 Si tiene problemas conectaacutendose a su servidor intente seguir la siguiente regla y conectar al puerto 5000
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net loc101010280 tcp 5000
En este punto modifique etcshorewallrules para agregar cualquier regla DNAT que se requiera
Importante
Cuando pruebe las reglas DNAT como las anteriores debe realizar las pruebas desde un cliente AFUERA de su fiewall (en la zona net ) Usted no puede probar estas reglas desde la parte interior del firewall
Para tips de Resolucioacuten de Problemas con DNAT vea FAQs 1a y 1b
Domain Name Server (DNS)
Normalmente cuando usted conecta con su ISP y como parte del proceso de obtener una direccioacuten IP el resolutor Domain Name Service (DNS) del firewall seraacute automaacuteticamente configurado (eg el archivo etcresolvconf seraacute rescrito) Alternativamente su ISP puede darle la direccioacuten IP de un par de servidores de nombre DNS para que manualmente los configure como servidores de nombre primario y secundario respectivamente Sin importar la forma en coacutemo se configuran los servidores DNS en su firewall es su responsabilidad configurar el resolutor en sus sistemas internos Puede escoger uno de dos caminos
bull Configura sus sistemas internos para que usen los servidores de nombre de su ISP Si su ISP le ha suministrado las direcciones de sus servidores DNS o de otros disponibles en su sitio web usted puede configurar sus sistemas internos para que usen dichas direcciones Si dicha informacioacuten no estaacute disponible vea en el archivo etcresolvconf de su sistema firewall -- los servidores de nombre son declarados con los registros nameserver en este archivo
bull Puede configurar un Cache Servidor de Nombres en su firewall Red Hattrade tiene un RPM para el cache servidor de nombres (el RPM tambieacuten requier el RPM bind) y para los usuarios Bering hay un dnscachelrp Si toma este camino usted configuraraacute sus sistemas internos para que usen el mismo firewall como su servidor primario (o uacutenico) de nombres Usariacutea la direccioacuten IP interna de su firewall (101010254 en el ejemplo anterior) como direccioacuten del servidor de nombres Para permitir a los sistemas locales hablar con el cache servidor de nombre deberaacute abrir el puerto 53 (ambos UDP y TCP) desde la red local hacia el firewall esto lo hace agregar las siguientes reglas en etcshorewallrules
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT loc $FW
Otras Conexiones
La muestra two-interface incluye las siguientes reglas
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT $FW net
Esta regla permite el acceso DNS desde su firewall y puede quitarse si ha quitado el comentario en la liacutenea de etcshorewallpolicy que permite todas las conexiones desde el firewall hacia internet
En la regla que se muestra arriba ldquoDNSACCEPTrdquo es un ejemplo de una invocacioacuten macro Shorewall incluye una cantidad de macros (vea usrshareshorewallmacro) y usted puede agregar los suyos
Usted no tiene que usar los macros cuando codifique las reglas en etcshorewallrules Shorewall arrancaraacute ligeramente maacutes raacutepido si codifica sus reglas directamente en vez de usar macros La regla anterior tambieacuten pudo haber sido codificada asiacute
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW net udp 53ACCEPT $FW net tcp 53
En los casos donde Shorewall no incluya un macro que satisfaga sus necesidades puede ya sea definir un nuevo macro o simplemente codificar las reglas apropiadas directamente
La muestra tambieacuten incluye
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT loc $FW
Esta regla permite correr el servidor SSH en su firewall y conectarse a eacutel desde los sistemas locales
Si desea habilitar otras conexiones desde su firewall a otros sistemas el formato general usando macros es
ACTION SOURCE DEST PROTO DEST PORT(S)ltmacrogtACCEPT $FW ltdestination zonegt
El formato general cuando no se usan macros predefinidos es
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW ltdestination zonegt ltprotocolgt ltportgt
Ejemplo 3 Servidor Web en el Firewall
Usted desea correr un servidor Web en su sistema firewall
ACTION SOURCE DEST PROTO DEST PORT(S)WebACCEPT net $FWWebACCEPT loc $FW
Estas dos reglas por supuesto seriacutean un agregado a las reglas listadas arriba bajo ldquoPuede configurar un Cache Servidor de Nombres en su firewall rdquo
Si no sabe queacute puerto y protcolo usa una aplicacioacuten particular mire aquiacute
Importante
No recomendados habilitar telnet desdehacia internet porque usa texto en claro para su comunicacioacuten (incluso para el login) Si desea acceso shell para su firewall desde Internet use SSH
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT net $FW
Los usuarios Bering querraacuten agregar las siguientes dos reglas para ser compatibles con la configuracioacuten Shorewall de Jacques
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT loc $FW udp 53 Allow DNS Cache to workACCEPT loc $FW tcp 80 Allow Weblet to work
Ahora edite su archivo etcshorewallrules para agregar o eliminar otras conexiones como se necesario
Algunos Concejos a Mantener en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque enviacutee solicitudes de conexioacuten a la direccioacuten IP de la interface externa de su firewall no significa que la solicitud seraacute asociada con la interface externa o con la zona ldquonetrdquo Cualquier traacutefico que se genere desde la red local seraacute asociado con su interface local y seraacute tratado como traacutefico loc-gtfw
bull Las direcciones IP son propiedades de los sistemas no de las interfaces Es un error pensar que su firewall sea capaz de renviar paquetes soacutelo porque puede hacerle ping a la direccioacuten IP de todas las interfaces IP del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping exitoso es que el enlace entre el sistema local y el firewall funciona bien y que probablemente tenga bien configurado el default gateway del sistema local
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zonas loc poniendo una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO necesariamente siguen automaacuteticamente el camino reverso al tomado por el paquete original de solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso en su camino Este tema usualmente salta a la palestra cuando se instala un firewall Shorewallall en paralelo a un gateway existente y se intenta usar DNAT a traveacutes del Shorewall sin cambiar el default gateway en el sistema que recibe la solicitud renviada Las solicitudes
entraraacuten por el firewall Shorewall donde la direccioacuten IP destino es rescrita pero la respuesta sale sin modificacioacuten por medio del gateway antiguo
bull Shorewall no tiene nocioacuten de adentro o afuera por siacute mismo Estos conceptos se incorporan en el coacutemo se configura Shorewall
Arrancando y Deteniendo Su Firewall
El procedimiento de instalacioacuten configura su sistema para arrancar Shorewall al arrancar (boot) el sistema pero el inicio de Shorewall estaacute deshabilitado por omisioacuten en su configuracioacuten asiacute que no intente arrancar su Shorewall hasta que termine la configuracioacuten Una vez que se hay completado la configuracioacuten de su firewall debe editar su etcshorewallshorewallconf y poner STARTUP_ENABLED=Yes
Importante
Los usuarios del paquete deb deben editar etcdefaultshorewall y poner startup=1
El firewall se arranca usando el comando ldquoshorewall startrdquo y se detiene con el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado para aquellas maacutequinas que tengan una entrada en el archivo etcshorewallroutestopped Un firewall detenido debe ser reiniciado usando el comando ldquoshorewall restartrdquo Si desea eliminar totalmente todo rastro de Shorewall de su configuracioacuten Netfilter use el comando ldquoshorewall clearrdquo
Esta muestra two-interface asume que usted desea habilitar el enrutamiento desdehacia eth1 (la red local) cuando Shorewall estaacute detenido Si su red local no estaacute conectada a eth1 o si desea habilitar el acceso desdehacia otras maacutequinas cambie apropiadamente el archivo etcshorewallroutestopped
Alerta
Si usted estaacute conectado a su firewall desde internet no enviacutee el comando ldquoshorewall stoprdquo a menos que haya agregado una entrada con la direccioacuten IP desde donde se conectoacute al archivo etcshorewallroutestopped Tampoco recomendamos usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarla con el comando ldquoshorewall tryrdquo
Lectura Adicional Recomendada
Se le recomienda altamente la paaacutegina Archivo de Facilidades de Configuracioacuten Comunes -- contiene tips uacutetiles acerca de las facilidades Shorewall que hacen maacutes faacutecil la administracioacuten del firewall Shorewall
Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
Una vez que tiene su arreglo de dos interfaces funcionando el siguiente paso loacutegico es agregar una conexioacuten de red inalaacutembrica El primer paso es agergar la tarjeta de red adicional a su firewall ya sea una tarjeta inalaacutembirca o una tarjeta ethernet que conecte a un punto de acceso inalaacutembirco
Precaucioacuten
Cuando agrega una tarjeta de red eacutesta no seraacute necesariamente detectada como la siguiente interface ethernet superior Por ejemplo si tiene dos interfaces ethernet en su sistema (eth0 and eth1) y agrega una tercera tarjeta que usa el mismo manejador (driver) de alguna de las dos anteriores la tercera no necesariamente seraacute detectada como eth2 mal pudiera ser detectada como eth0 o eth1 Usted puede ya sea vivir con ello o puede intercambiar las tarjetas en los soacutecates hasta que la nueva tarjeta sea detectada como eth2
Su nuevo arreglo de red luciraacute similar a la figura siguiente
La primera cosa notable es que las computadores en su red inalaacutembrica estan en una subred diferente a los de su red cableada en la LAN En el ejemplo de arriba hemos escogido usar la red 101011024 Las computadoras 3 y 4 seriacutean configuradas con la direccioacuten IP del default gateway IP a 101011254
Segundo hemos escogido incluir la red inalaacutembrica como parte de la zona local Ya que Shorewall permite el traacutefico en-la-zona por omisioacuten el traacutefico puede fluir libremente entre la red cableada local y la red inalaacutembrica
Hay soacutelo dos cambios necesarios para nuestra configuracioacuten Shorewall
bull Se necesita agregar una entrada a etcshorewallinterfaces para la interface de red inalaacutembrica Si la interface inalaacutembrica es wlan0 la entrada puede lucir asiacute
ZONE INTERFACE BROADCAST OPTIONSloc wlan0 detect maclist
Como se muestra en la entrada anterior se recomienda usar la opcioacuten maclist para el segmento inalaacutembrico En paralelo agregue las entradas para las computadoras 3 y 4 en etcshorewallmaclist para prevenir que sus vecinos obtengan una conexioacuten gratuita a internet a sus expensas Comience por omitir esta opcioacuten cuando tenga todo funcionando entonces agregue esta opcioacuten y configure su archivo etcshorewallmaclist
bull Usted necesita agregar una entrada al archivo etcshorewallmasq para enmascarar el traacutefico desde la red inalaacutembrica hacia internet Si su interface hacia internet es eth0 y su interface inalaacutembrica es wlan0 la entrada seriacutea asiacute
INTERFACE SUBNET ADDRESSeth0 wlan0
Otra cosa a notar para poner la red de Microsofttrade a funcionar entre las redes inalaacutembrica y cableada necesitaraacute ya sea un servidor WINS o un PDC Yo personalmente uso Samba configurado como servidor WINS corriendo en mi firewall Correr un servidor WINS en el firewall requiere las reglas que se listan en documentacioacuten ShorewallSamba
Guiacutea de Configuracioacuten de Shorewall
Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
Precaucioacuten
Este artiacuteculo aplica a Shorewall 30 en adelante Si estaacute corriendo una versioacuten previa de Shorewall 300 entonces por favor vea la documentacioacuten para dicha liberacioacuten
Introduccioacuten
Esta guiacutea estaacute destinada a los usuarios que desean configurar Shorewall en entornos donde un conjunto de direcciones IP puacuteblicas deben ser manejadas Para quienes desean conocer maacutes acerca de Shorewall en otros entornos revise las Guiacuteas Raacutepidas de Shorewall Debido a las amplias diferentes posibles aplicaciones la Guiacutea le daraacute directrices y apuntaraacute hacia otros recursos si ello es necesario
Precaucioacuten
Shorewall requiere el paquete iprouteiproute2 instalado (en RedHat el paquete se llama iproute) Usted puede saber si el paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando ldquowhichrdquo para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se recomienda que primero lea la guiacutea para que se familiarice con lo que estaacute involucrado y luego vuelva hacia atraacute y comience sobre los cambios de configuracioacuten requeridos Los puntos donde se recomiendan cambios de
configuracioacuten se sentildealan con
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windows usted debe salvarlos como archivos Unix si su editor soporta dicha opcioacuten o debe ejecutar dicho archivo con dos2unix antes de usarlo con Shorewall De forma similar si copia un archivo de configuracioacuten desde su disco duro en Windows a un disco flexible debe ejecutar previamente dos2unix contra la copia antes de usarla con Shorewall
bull Enlace a versioacuten Windows de dos2unix httpwwwsimtelnetpubpd51438html bull Enlace a versioacuten Linux de dos2unix httpwwwmegalomancom7Ehanysoftwarehd2u
Conceptos de Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall para la mayoriacutea de las configuraciones soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea El esqueleto de archivos de configuracioacuten es creado durante el Proceso de Instalacioacuten de Shorewall
Alerta
Nota para los Usuarios Debian
Si instala usando un deb encontraraacute que el directorio etcshorewall estaacute vaciacuteo Esto es intencional Los archivos del esqueleto correspondientes a la liberacioacuten correspondiente pueden encotrarse en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no los modifica
En la medida que introducimos cada archivo sugerimos que revise dicho archivo en su sistema cada archivo contiene instrucciones detalladas de configuracioacuten
Shorewall ve la red donde estaacute corriendo como si estuviera compuesta de un conjunto de zonas En esta guiacutea usaremos las siguientes zonas
fw
El propio sistema firewall
net
La red puacuteblica Internet
loc
La red local privada que usa direcciones IP privadas
dmz
Una Zona Desmilitarizada que aloja servidores de acceso puacuteblico
Las zonas se definen en el archivo etcshorewallzones
Importante
El archivo etcshorewallzones incluiacutedo en la distribucioacuten estaacute vaciacuteo Usted puede crear el conjunto de zonas estandar descritas anteriormente copiando y pegando el siguiente contenido en dicho archivo
ZONE TYPE OPTIONSfw firewallnet ipv4loc ipv4dmz ipv4
Note que Shorewall reconoce al sistema firewall como su propia zona El ejemplo anterior sigue la convencioacuten usual de nombres zona firewall fw El nombre especificado para la zona firewall (fw en el ejemplo anterior) se almacena en la variable shell $FW cuando se procesa el archivo etcshorewallzones Con la excepcioacuten del nombre asignado a la zona firewall Shorewall no asocia ninguacuten significado especial a los nombes de zona Las zonas son lo que USTED hace de ellas Ello significa que no debe esperar que Shorewall haga algo especial porque esta es la zona interna o porque esta es la zona DMZ
Edite el archivo etcshorewallzones y haga los cambios necesarios
La reglas acerca de queacute traacutefico permitir y negar se expresan en teacuterminos de las zonas
bull Usted expresa la poliacutetica por omisioacuten para conexiones desde una a otra zona en el archivo etcshorewallpolicy
bull Usted define excepciones a dichas poliacuteticas en etcshorewallrules
Shorewall se construye sobre el motor de kernel Netfilter Netfilter implementa la funcioacuten de seguimiento de conexiones que permite lo que se denomina como inspeccioacuten por estado (stateful inspection) de paquetes Esta capacidad de manejar los estados permite que las reglas de firewall sean definidas en teacuterminos de conexiones en vez de paquetes Con Shorewall usted
1 Identifica la zona origen (cliente)2 Identifica la zona destino (servidor)3 Si la POLITICA de la zona cliente a la zona servidor es lo que desea para esta pareja clienteservidor no
necesita hacer nada adicional4 Si la POLITICA no es lo que desea entonces debe agregar una regla La regla se expresa en teacuterminos de la
zona del cliente y de la zona del servidor
Soacutelo porque las conexiones de un tipo particular desde la zona A hacia el firewall estaacuten permitidas y que tambieacuten estaacuten permitidas desde el firewall a la zona B NO sigifica que estas conexiones esten permitidas entre la zona A y la zona B (en otras palabras las poliacuteticas y reglas que involucran a la zona firewall no son transitivas) A cambio significa que usted puede tener un proxy corriendo en el firewall que acepta conexiones desde la zona A y luego establece conexiones separadas por siacute mismo desde el firewall hacia la zona B
Para cada solicitud de conexioacuten que entra al firewall la solicitud se chequea primero contra el archivo etcshorewallrules Si ninguna regla del archivo aplica se aplica a la solicitud de conexioacuten la primera poliacutetica en etcshorewallpolicy que corresponda con dicha solicitud despueacutes de que haya pasado por la accioacuten comuacuten apropiada (si existe alguna)
Previo a Shorewall 220 el archivo por omisioacuten etcshorewallpolicy teniacutea las siguientes poliacuteticas
SOURCE ZONE DESTINATION ZONE POLICY LOG LIMITBURST LEVELloc net ACCEPTnet all DROP infoall all REJECT info
Importante
El archivo de poliacuteticas de la versioacuten actual estaacute vaciacuteo Usted puede copiar y pegar las entradas anteriores para crear un punto de partida para luego personalizar sus poliacuteticas
Las poliacuteticas anteriores haraacuten que
1 permitiraacute todas las solicitudes de conexiones desde la red local hacia internet2 descartaraacute (ignoraraacute) todas las solicitudes de conexiones desde internet hacia su firewall o red local y se
registra un mensaje a nivel informativo (info level log vea aquiacute la descripcioacuten de los niveles de registro)3 rechaza todas las solicitudes de conexiones y registra un mensaje a nivel informativo Cuando una solicitud
se rechaza el firewall devuelve un RST (si el protocolo es TCP) o un paquete ICMP de puerto-inalcanzabe para los otros protocolos
En este punto edite su archivo etcshorewallpolicy y haga los cambios que desee
Interfaces de Red
Para el resto de esta guiacutea nos referiremos al siguiente diagrama Si bien puede que no luzca como el de su red puede usarse para ilustrar los aspectos importantes de la configuracioacuten Shorewall
En este diagrama
bull La Zona DMZ consiste de los sistemas DMZ 1 y DMZ 2 Una DMZ se usa para aislar su servidors accesibles desde internet de sus sistemas locales tal que si uno de esos servidores estaacute comprometido auacuten tendraacute el firewall entre el sistema comprometido y sus sistemas en la red local
bull La Zona Local consiste de los sistemas Local 1 Local 2 y Local 3bull Todos los sistemas desde el ISP hacia afuera componen la Zona Internet
La forma maacutes cimple de definir zonas es asociar el nombre de la zona (previamente definida en etcshorewallzones) con una interface de red Esto se hace en el archivo etcshorewallinterfaces El firewall ilustrado arriba tiene tres interfaces de red Donde la conectividad hacia Internet es hecha a traveacutes de un cable Modem o DSL la Interface Externa seraacute un adaptador Ethernet que se ecneuntra conectado al Modem (eg eth0) a menos que conecte usando Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta usando un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces desearaacute establecer CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Local seraacute un adaptador Ethernet (eth0 eth1 o eth2) y conectaraacute a un hub o switch Sus computadores locales estaraacuten conectadas al mismo switch o hub (nota Si tiene un uacutenico sistema local puede conectar directamente el firewall al computador utilizando un cable cruzado)
Su Interface DMZ tambieacuten seraacute un adaptador Ethernet (eth0 eth1 o eth2) y se conectaraacute a un hub o switch Sus computadores DMZ seraacuten conectados al mismo switch o hub (nota Si tiene un uacutenico sistema DMZ puede conectar directamente el firewall al computador usando un cable cruzado)
Precaucioacuten
No conecte la interace interna y externa al mismo hub o switch exceptuando para pruebas Y estaacute corriendo Shorewall 147 o superior Cuando use estas versiones recientes puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en el archivo etcshorewallinterfaces para todas las interfaces conectadas al mismo hubswitch No se recomienda utilizar tal configuracioacuten con un firewall de produccioacuten
Para el resto de esta guiacutea asumiremos que
bull La Interface Externa es eth0bull La Interface Local es eth1bull La Interface DMZ es eth2
La cinfiguracioacuten Shorewall por omisioacuten no define el contenido de ninguna zona Para definir la configuracioacuten de arriba usando el archivo etcshorewallinterfaces dicho archivo contendriacutea
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectdmz eth2 detect
Note que la zona $FW no tiene una entrada en el archvio etcshorewallinterfaces
Edite el archivo etcshorewallinterfaces y defina las interfaces de red de su firewall asociadas con su zona Si tiene una zona disponible a traveacutes de maacutes de una interface de red simplemente incluya una entrada para cada interface y repita el nombre de zona tantas veces como haga falta con su respectiva interface de red
Ejemplo 1 Muacuteltiples Interfaces hacia una Zona
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectloc eth2 detect
Usted puede definir zonas maacutes complicadas usando el archivo etcshorewallhosts pero en la mayoriacutea de los casos ello no es necesario Vea Shorewall_and_Aliased_Interfaceshtml y Multiple_Zoneshtml para algunos ejemplos
Direccionamiento Subredes y Enrutamiento
Normalmente su ISP le asignaraacute un conjunto de direcciones IP Puacuteblicas Usted configuraraacute su interface externa de su firewall para que use una de dichas direcciones permanentemente y entonces tendraacute que decidir como usaraacute el resto de sus direcciones Antes de que contestemos esta pregunta es conveniente primero revisar los fundamentos
Si usted estaacute ampliamente familiarizado con el direccionamiento IP y el enrutamiento puede ir directo a la proacutexima seccioacuten
La siguiente discusioacuten revisa someramente el direccionamiento y el enrutamiento IP Si estaacute interesado en aprender maacutes acerca del tema le recomendaos ampliamente ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0
Direcciones IP
Las direcciones IP versioacuten 4 (IPv4) son nuacutemeros de 32 -bits La notacioacuten wxyz refiere a una direccioacuten donde el byte de orden superior tiene el valor ldquowrdquo el proacuteximo byte tiene el valor ldquoxrdquo etc Si tomamos la direccioacuten 1920214 y la expresamos en hexadecimal obtenemos
C000020E
o viacuteendolo como un entero de 32-bits
C000020E
Subredes
Usted comenzaraacute a escuchar los teacuterminos ldquored Clase Ardquo ldquored Clase B y red Clase C En los primeros diacuteas de IP las redes veniacutean en tres tamantildeos (existiacutea tambieacuten redes Clase D pero era usada de forma diferente)
Clase A - maacutescara de red 255000 size = 2 24Clase B - maacutescara de red 25525500 size = 2 16
Clase C - maacutescara de red 2552552550 size = 256
La clase de una red era determinada uniacutevocamente por el valor del byte superior de su direccioacuten tal que usted pudiera ver la direccioacuten IP e inmediatamente determinara la maacutescara asociada La maacutescara de red es un nuacutemero que cuando se aplica un Y loacutegico con la direccioacuten separa la direccioacuten de red del resto que es la direccioacuten de host Por ejemplo la direccioacuten Clase C 1920214 la direccioacuten de red es el hexadecimal C00002 y el nuacutemero de host es 0E
En la medida que internet crecioacute se hizo claro que tal particionamiento tan grueso de direcciones de 32-bits iva a ser muy limitante (iexclPreviamente a las grandes corporaciones y universidades le fueron asignadas sus propias redes clase A) Despueacutes de unos arranques en falso la teacutecnica de subredes evolucionoacute al sistema actual de redes maacutes pequentildeas la teacutecnica se le refiere como Classless InterDomain Routing (CIDR) Hoy diacutea cualquier sistema que usted probablemente use entenderaacute CIDR y las redes basadas en clases son ya algo del pasado
Una subred es un conjunto contiguo de direcciones IP tal que
1 La cantidad de direcciones en el conjunto es una potencia de 2 y2 La primera direccioacuten en el conjunto es un muacuteltiplo del tamantildeo del conjunto3 La primera direccioacuten en la subred se reserva y se le refiere como la direccioacuten de subred4 La uacutetima direccioacuten en la subred estaacute reservada como la direccioacuten de difusioacuten(broadcast) de la subred
Como puede ver por definicioacuten en cada subred de tamantildeo n hay (n - 2) direcciones utilizables (direcciones que se pueden asignar a maacutequinas) La primera y uacuteltima direccioacuten en la subred son utilizadas como direccioacuten de la subred y direccioacuten de difusioacuten respectivamente En consecuencia las subredes maacutes pequentildeas desperdician maacutes direcciones IP que las redes maacutes grandes
Ya que n es una potencia de dos faacutecilmente podemos calcular el Logaritmo-Base2 (log2) de n Para los tamantildeos maacutes comunes de subred el tamantildeo y su logaritmos base 2 son dados por la siguiente tabla
Tabla 1 Logaritmos Base-2
n log2 n (32 - log2 n)
8 3 29
16 4 28
32 5 27
64 6 26
128 7 25
256 8 24
512 9 23
1024 10 22
2048 11 21
4096 12 20
8192 13 19
16384 14 18
32768 15 17
65536 16 16
Notaraacute que la tabla arriba tambieacuten contiene una columna parar (32 - log2 n) Este nuacutemero es la Variable Length Subnet Mask (VLSM) para una red de tamantildeo n De la tabla arriba podemos derivar la siguiente que es un poco maacutes faacutecil de usar
Tabla 2 VLSM
Subnet Size VLSM Subnet Mask
8 29 255255255248
16 28 255255255240
32 27 255255255224
64 26 255255255192
128 25 255255255128
256 24 2552552550
512 23 2552552540
1024 22 2552552520
2048 21 2552552480
4096 20 2552552400
8192 19 2552552240
16384 18 2552551920
32768 17 2552551280
65536 16 25525500
2 24 8 255000
Note que la VLSM se escribe con barra (ldquordquo) -- a menudo escucharaacute de una subred de tamantildeo 64 referida como una subred ldquobarra 26rdquo y una de tamantildeo 8 referida como de ldquobarra 29rdquo
La maacutescara de subred es simplemente un nuacutemero de 32 bits con los primeros ldquoVLSMrdquo bits puestos a uno y los remanentes bits puestos a cero Por ejemplo para una subred de tamantildeo 64 la maacutescara de subred tiene los primeros 26 bits en uno
11111111111111111111111111000000 = FFFFFFC0 = FFFFFFC0 = 255255255192
La maacutescara de subred tiene la propiedad de que si se hace un Y loacutegico con una direccioacuten en la subred el resultado es la direccioacuten de la subred Igual de importante si hace un Y loacutegico de la maacutescara de subre con una direccioacuten fuera de la subred el resultado NO es la direccioacuten de la subred Como ya veremos esta propiedad de la maacutescara de subred es muy uacutetil para el enrutamiento
Para una subred cuya direccioacuten es abcd y cuyo Variable Length Subnet Mask es v denotamos la subred como ldquoabcdvrdquo usando Notacioacuten CIDR Ejemplo
Tabla 3 Subred
Subred 1010100 - 101010127
Tamantildeo Subred 128
Direccioacuten Subred 1010100
Direccioacuten Difusioacuten 101010127
Notacioacuten CIDR 101010025
Existen dos subredes degeneradas que merecen ser nombradas la subred con un miembro y la subre con 2 32 miembros
Tabla 4 32 y 0
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
El firewall tiene dos interfaces de red Donde si bien la conectividad es a traveacutes de cable modem o Modem DSL la Interface Externa seraacute el adaptador ethernet que se encuentre conectado a dicho Modem (eg eth0) a menos que conecte viacutea Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta por un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces querraacute poner CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Interna seraacute un adaptador ethernet (eth1 o eth0) y conectaraacute a un hub o switch Sus computadores se conectaraacuten al mismo hubswitch (nota Si tiene un uacutenico sistema interno puede conectarlo directamente al firewall usando un cable cruzado)
Alerta
No conecte la interface interna y externa al mismo hub o switch exceptuado para pruebas Usted puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en etcshorewallinterfaces para todas las interfaces comunes al mismo hubswitch Usando tal configuracioacuten con un firewall en produccioacuten no es para nada recomendable
La muestra two-interface de Shorewall asume que la interface externa es eth0 y que la interface interna es eth1 Si su configuracioacuten difiere tendraacute que modificar la muesta acordemente en el archivo etcshorewallinterfaces Mientra esteacute ahiacute puede revisar la lista de opciones que le son especiacuteficas para las interfaces Algunas pistas
Tip
Si su interface externa es ppp0 o ippp0 puede remplazar en la segunda columna detect con ldquo-rdquo (sin las comillas)
Tip
Si su interface externa es ppp0 o ippp0 o si tiene una direccioacuten IP estaacutetica puede eliminar dhcp de la lista de opciones
Tip
Si su interface interna es un puente (bridge) cree If your internal interface is a bridge create using the brctl utility then you must add the routeback option to the option list
Direcciones IP
Antes de seguir avanzando debemos decir unas cuantas palabras acerca de las direcciones Internet Protocol (IP) Normalmente su ISP le asignaraacute una uacutenica direccioacuten IP Puacuteblica Esta direccioacuten puede ser asignada viacutea Dynamic Host Configuration Protocol (DHCP) o como parte del establecimiento de su conexioacuten cuando disca (modem estandar) o establece su conexioacuten PPP En raras ocasiones su ISP le asignaraacute una direccioacuten IP estaacutetica esto significa que usted configuraraacute la interface exerna de su firewall para usar permanentemente esa direccioacuten Sin embargo su direccioacuten IP asignada seraacute compartida por todos sus sistemas cuando accedan a Internet Usted tendraacute que asignar sus propias direcciones en su red interna (la Interface Interna en su firewall maacutes las otras computadores) El RFC 1918 reserva varios rangos de direcciones Privadas IP para ese propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Antes de arrancar Shoreall usted debe ver la direccioacuten IP de su interface externa y si es una dentro de los rangos descritos arriba deberiacutea quitar la opcioacuten norfc1918 de la entrada que corresponde a su interface externa en etcshorewallinterfaces
Usted querraacute asignar sus direcciones desde la misma subred Para nuestros propoacutesitos podemos considerar una subred que consista de un rango de direcciones xyz0 - xyz255 Tal subred tendraacute una maacutescara de red de 2552552550 La direccioacuten xyz0 se reserva como la Direccioacuten de Subred y xyz255 se reserva como la Direccioacuten de Difusioacuten de la Subred (Boradcast) En Shorewall una subred se describe usando la notacioacuten Classless InterDomain Routing (CIDR) que consiste de direcciones de subred seguida de 24 El ldquo24rdquo se refiere a la cantidad de 1 consecutivos a la cabeza de la maacutescara de red
Rango 1010100 - 101010255
Direccioacuten de Subred 1010100
Direccioacuten de Difusioacuten 101010255
Notacioacuten CIDR 101010024
Es convencioacuten asignarle la primera direccioacuten utilizable en la subred a la interface interna (1010101 en el ejemplo anterior) o la uacuteltima (101010254)
Uno de los propoacutesitos de hacer subredes es permitir a todas las computadoras en la subred entender queacute otras computadoras pueden comunicarse con ellas directamente Para comunicarse con sistemas fuera de la subre los sistemas deben enviar los paquetes a su detino final a traveacutes de un gateway (enrutador)
Sus computadoras locales (computer 1 y computer 2 en el diagrama arriba) deben ser configuradas con el default gateway a la direccioacuten IP de la interface interna del firewall
La discusioacuten a continuacioacuten repasa por encima los temas de subredes y enrutamiento Si estaacute interesado en aprender maacutes acerca del direccionamiento y el enrutamiento IP si le recomienda altamente el libro ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0 (enlace)
El resto de esta guiacutea asume que tiene su red dispuesta de esta forma
El default gateway para las computdores 1 y 2 seriacutea 101010254
Alerta
Su ISP puede que le asigne una direccioacuten RFC 1918 para su interface externa Si dicha direccioacuten estaacute en la subred 101010024 entonces tendraacute que seleccionar una subred DIFERENTE RFC 1918 para su red local
Enmascaramiento IP (SNAT)
Las direcciones reservadas por el RFC 1918 son a veces referidas como no-ruteable debido a que los enrutadores en el corazoacuten de Internet no se renviacutean los paquetes IP cuando tienen como destino una direccioacuten RFC 1918 Cuando uno de su sistemas locales (digamos computer 1) enviacutea una solicitud de conexioacuten a una maacutequina en Internet el firewall debe hacer Network Address Translation (NAT Traduccioacuten de Direccioacuten de Red) El firewall rescribe la direccioacuten de origen en el paquete para que sea la direccioacuten de la interface externa del firewall en otras palabras el
firewall hace parecer que la solicitud de conexioacuten fueacute originada en el propio firewall Esto es necesario hacerlo para la maaacutequina destino sea capaz de enrutar la respuesta de vuelta hasta el firewall (recuerde que los paquetes cuyos destinos es una direccioacuten RFC 1918 no son enrutados a traveacutes de internet para que la respuesta vuelva su origen en computer 1) Cuando el firewall recibe un paquete de respuesta rescribe la direccioacuten de destino de vuelta a 1010101 y enviacutea el paquete a computer 1
En los sistemas Linux el proceso anterior es conocido como Enmascaramiento IP pero tambieacuten veraacute el uso del teacutermino Source Network Address Translation (SNAT) Shorewall sigue la convencioacuten que usa Netfilter
bull Enmascaramiento (Masquerade) describe el caso donde se permite al sistema firewall detectar automaacuteticamente la direccioacuten de la interface externa
bull SNAT se refiere al caso donde expliacutecitamente especifica la direccioacuten origen que desea usar en los paquetes salientes
En Shorewall tanto Enmascaramiento y SNAT se configuran con entradas en el archivo etcshorewallmasq Normalmente usaraacute Enmascaramiento si su direccioacuten IP en la interface externa es dinaacutemica y SNAT en el caso de direccioacuten IP estaacutetica
Si la interface externa de su firewall es eth0 no se necesita modificar el archivo provisto con la muestra De otra forma edite etcshorewallmasq y cambie la primera columna para que refleje el nombre de su interface externa y la segunda columna el nombre de su interface interna
Si su direccioacuten IP externa es estaacutetica puede enterarla en la tercrea columna en etcshorewallmasq si desea si bien su firewall funcionaraacute bien si no lo hace Enterar su direccioacuten IP estaacutetica en la tercera columna hace que procesar los paquetes salientes sea un poco maacutes eficiente
Si estaacute usando el paquete Debian por favor revise su archivo shorewallconf para asegurarse que lo siguiente esteacute escrito correctamente si no es asiacute caacutembielo apropiadamente
bull IP_FORWARDING=On
Desviacuteo de Puerto (DNAT)
Una de sus metas puede ser correr uno o mas servidores en sus sistemas locales Ya que dichas computadoras tienen direcciones RFC-1918 no es posible a los clientes en internet conectar directamente con ellas En cambio es necesario para dichos clientes dirigir sus solicitudes de conexioacuten hacia el firewall quien rescribe la direccioacuten destino a la direccioacuten de su servidor y enviacutea el paquete al servidor Cuando su servidor responde el firewall automaacuteticamente realiza SNAT para rescribir la direccioacuten origen en la respuesta
El proceso anterior es llamado Desviacuteo de Puerto o Port Forwarding o Destination Network Address Translation (DNAT) Usted puede configurar el desviacuteo de puerto usando las reglas DNAT en el archivo etcshorewallrules
La forma general de una regla de desviacuteo de puerto simple en etcshorewallrules es
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net locltserver local ip addressgt[ltserver portgt] ltprotocolgt ltportgt
Shorewall incorpora macros para muchas de las aplicaciones populares Revise en usrshareshorewallmacro para identificar los macros disponibles en su versioacuten Los macros simplemente crean reglas DNAT suministrando el protocolo y puerto(s) como se muestra en los siguientes ejemplos
Ejemplo 1 Servidor Web
Usted estaacute corriendo un Servidor Web en computer 2 y desea desviar el puerto entrante TCP 80 a este sistema
ACTION SOURCE DEST PROTO DEST PORT(S)WebDNAT net loc1010102
Ejemplo 2 Servidor FTP
Usted estaacute corriendo un Servidor FTP en computer 1 tal que desea entonces desviar el puerto entrante TCP 21 a ese sistema
ACTION SOURCE DEST PROTO DEST PORT(S)FTPDNAT net loc1010101
Para FTP necesitaraacute adicionalmente el motor de seguimiento de conexiones y el soporte NAT en su kernel Para los kernel provistos por el vendedor esto significa que los moacutedulos ip_conntrack_ftp y ip_nat_ftp deben ser cargados Shorewall cargaraacute automaacuteticamente dichos moacutedulos si estaacuten disponibles y localizados en el lugar estandar bajo libmodulesltkernel versiongtkernelnetipv4netfilter
Un par de puntos importantes a mantener en mente son
bull Usted debe probar la regla anterior desde un cliente externe a su red local (ie no pruebe desde un explorador en los computadores 1 o 2 o en el firewall) Si desea ser capaz de acceder a su servidor web yo ftp desde adentro de su fireall usando la direccioacuten IP de su interface externa vea Shorewall FAQ 2
bull Muchos ISPs bloquean las solicitudes entrantes al puerto 80 Si tiene problemas conectaacutendose a su servidor intente seguir la siguiente regla y conectar al puerto 5000
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net loc101010280 tcp 5000
En este punto modifique etcshorewallrules para agregar cualquier regla DNAT que se requiera
Importante
Cuando pruebe las reglas DNAT como las anteriores debe realizar las pruebas desde un cliente AFUERA de su fiewall (en la zona net ) Usted no puede probar estas reglas desde la parte interior del firewall
Para tips de Resolucioacuten de Problemas con DNAT vea FAQs 1a y 1b
Domain Name Server (DNS)
Normalmente cuando usted conecta con su ISP y como parte del proceso de obtener una direccioacuten IP el resolutor Domain Name Service (DNS) del firewall seraacute automaacuteticamente configurado (eg el archivo etcresolvconf seraacute rescrito) Alternativamente su ISP puede darle la direccioacuten IP de un par de servidores de nombre DNS para que manualmente los configure como servidores de nombre primario y secundario respectivamente Sin importar la forma en coacutemo se configuran los servidores DNS en su firewall es su responsabilidad configurar el resolutor en sus sistemas internos Puede escoger uno de dos caminos
bull Configura sus sistemas internos para que usen los servidores de nombre de su ISP Si su ISP le ha suministrado las direcciones de sus servidores DNS o de otros disponibles en su sitio web usted puede configurar sus sistemas internos para que usen dichas direcciones Si dicha informacioacuten no estaacute disponible vea en el archivo etcresolvconf de su sistema firewall -- los servidores de nombre son declarados con los registros nameserver en este archivo
bull Puede configurar un Cache Servidor de Nombres en su firewall Red Hattrade tiene un RPM para el cache servidor de nombres (el RPM tambieacuten requier el RPM bind) y para los usuarios Bering hay un dnscachelrp Si toma este camino usted configuraraacute sus sistemas internos para que usen el mismo firewall como su servidor primario (o uacutenico) de nombres Usariacutea la direccioacuten IP interna de su firewall (101010254 en el ejemplo anterior) como direccioacuten del servidor de nombres Para permitir a los sistemas locales hablar con el cache servidor de nombre deberaacute abrir el puerto 53 (ambos UDP y TCP) desde la red local hacia el firewall esto lo hace agregar las siguientes reglas en etcshorewallrules
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT loc $FW
Otras Conexiones
La muestra two-interface incluye las siguientes reglas
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT $FW net
Esta regla permite el acceso DNS desde su firewall y puede quitarse si ha quitado el comentario en la liacutenea de etcshorewallpolicy que permite todas las conexiones desde el firewall hacia internet
En la regla que se muestra arriba ldquoDNSACCEPTrdquo es un ejemplo de una invocacioacuten macro Shorewall incluye una cantidad de macros (vea usrshareshorewallmacro) y usted puede agregar los suyos
Usted no tiene que usar los macros cuando codifique las reglas en etcshorewallrules Shorewall arrancaraacute ligeramente maacutes raacutepido si codifica sus reglas directamente en vez de usar macros La regla anterior tambieacuten pudo haber sido codificada asiacute
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW net udp 53ACCEPT $FW net tcp 53
En los casos donde Shorewall no incluya un macro que satisfaga sus necesidades puede ya sea definir un nuevo macro o simplemente codificar las reglas apropiadas directamente
La muestra tambieacuten incluye
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT loc $FW
Esta regla permite correr el servidor SSH en su firewall y conectarse a eacutel desde los sistemas locales
Si desea habilitar otras conexiones desde su firewall a otros sistemas el formato general usando macros es
ACTION SOURCE DEST PROTO DEST PORT(S)ltmacrogtACCEPT $FW ltdestination zonegt
El formato general cuando no se usan macros predefinidos es
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW ltdestination zonegt ltprotocolgt ltportgt
Ejemplo 3 Servidor Web en el Firewall
Usted desea correr un servidor Web en su sistema firewall
ACTION SOURCE DEST PROTO DEST PORT(S)WebACCEPT net $FWWebACCEPT loc $FW
Estas dos reglas por supuesto seriacutean un agregado a las reglas listadas arriba bajo ldquoPuede configurar un Cache Servidor de Nombres en su firewall rdquo
Si no sabe queacute puerto y protcolo usa una aplicacioacuten particular mire aquiacute
Importante
No recomendados habilitar telnet desdehacia internet porque usa texto en claro para su comunicacioacuten (incluso para el login) Si desea acceso shell para su firewall desde Internet use SSH
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT net $FW
Los usuarios Bering querraacuten agregar las siguientes dos reglas para ser compatibles con la configuracioacuten Shorewall de Jacques
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT loc $FW udp 53 Allow DNS Cache to workACCEPT loc $FW tcp 80 Allow Weblet to work
Ahora edite su archivo etcshorewallrules para agregar o eliminar otras conexiones como se necesario
Algunos Concejos a Mantener en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque enviacutee solicitudes de conexioacuten a la direccioacuten IP de la interface externa de su firewall no significa que la solicitud seraacute asociada con la interface externa o con la zona ldquonetrdquo Cualquier traacutefico que se genere desde la red local seraacute asociado con su interface local y seraacute tratado como traacutefico loc-gtfw
bull Las direcciones IP son propiedades de los sistemas no de las interfaces Es un error pensar que su firewall sea capaz de renviar paquetes soacutelo porque puede hacerle ping a la direccioacuten IP de todas las interfaces IP del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping exitoso es que el enlace entre el sistema local y el firewall funciona bien y que probablemente tenga bien configurado el default gateway del sistema local
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zonas loc poniendo una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO necesariamente siguen automaacuteticamente el camino reverso al tomado por el paquete original de solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso en su camino Este tema usualmente salta a la palestra cuando se instala un firewall Shorewallall en paralelo a un gateway existente y se intenta usar DNAT a traveacutes del Shorewall sin cambiar el default gateway en el sistema que recibe la solicitud renviada Las solicitudes
entraraacuten por el firewall Shorewall donde la direccioacuten IP destino es rescrita pero la respuesta sale sin modificacioacuten por medio del gateway antiguo
bull Shorewall no tiene nocioacuten de adentro o afuera por siacute mismo Estos conceptos se incorporan en el coacutemo se configura Shorewall
Arrancando y Deteniendo Su Firewall
El procedimiento de instalacioacuten configura su sistema para arrancar Shorewall al arrancar (boot) el sistema pero el inicio de Shorewall estaacute deshabilitado por omisioacuten en su configuracioacuten asiacute que no intente arrancar su Shorewall hasta que termine la configuracioacuten Una vez que se hay completado la configuracioacuten de su firewall debe editar su etcshorewallshorewallconf y poner STARTUP_ENABLED=Yes
Importante
Los usuarios del paquete deb deben editar etcdefaultshorewall y poner startup=1
El firewall se arranca usando el comando ldquoshorewall startrdquo y se detiene con el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado para aquellas maacutequinas que tengan una entrada en el archivo etcshorewallroutestopped Un firewall detenido debe ser reiniciado usando el comando ldquoshorewall restartrdquo Si desea eliminar totalmente todo rastro de Shorewall de su configuracioacuten Netfilter use el comando ldquoshorewall clearrdquo
Esta muestra two-interface asume que usted desea habilitar el enrutamiento desdehacia eth1 (la red local) cuando Shorewall estaacute detenido Si su red local no estaacute conectada a eth1 o si desea habilitar el acceso desdehacia otras maacutequinas cambie apropiadamente el archivo etcshorewallroutestopped
Alerta
Si usted estaacute conectado a su firewall desde internet no enviacutee el comando ldquoshorewall stoprdquo a menos que haya agregado una entrada con la direccioacuten IP desde donde se conectoacute al archivo etcshorewallroutestopped Tampoco recomendamos usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarla con el comando ldquoshorewall tryrdquo
Lectura Adicional Recomendada
Se le recomienda altamente la paaacutegina Archivo de Facilidades de Configuracioacuten Comunes -- contiene tips uacutetiles acerca de las facilidades Shorewall que hacen maacutes faacutecil la administracioacuten del firewall Shorewall
Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
Una vez que tiene su arreglo de dos interfaces funcionando el siguiente paso loacutegico es agregar una conexioacuten de red inalaacutembrica El primer paso es agergar la tarjeta de red adicional a su firewall ya sea una tarjeta inalaacutembirca o una tarjeta ethernet que conecte a un punto de acceso inalaacutembirco
Precaucioacuten
Cuando agrega una tarjeta de red eacutesta no seraacute necesariamente detectada como la siguiente interface ethernet superior Por ejemplo si tiene dos interfaces ethernet en su sistema (eth0 and eth1) y agrega una tercera tarjeta que usa el mismo manejador (driver) de alguna de las dos anteriores la tercera no necesariamente seraacute detectada como eth2 mal pudiera ser detectada como eth0 o eth1 Usted puede ya sea vivir con ello o puede intercambiar las tarjetas en los soacutecates hasta que la nueva tarjeta sea detectada como eth2
Su nuevo arreglo de red luciraacute similar a la figura siguiente
La primera cosa notable es que las computadores en su red inalaacutembrica estan en una subred diferente a los de su red cableada en la LAN En el ejemplo de arriba hemos escogido usar la red 101011024 Las computadoras 3 y 4 seriacutean configuradas con la direccioacuten IP del default gateway IP a 101011254
Segundo hemos escogido incluir la red inalaacutembrica como parte de la zona local Ya que Shorewall permite el traacutefico en-la-zona por omisioacuten el traacutefico puede fluir libremente entre la red cableada local y la red inalaacutembrica
Hay soacutelo dos cambios necesarios para nuestra configuracioacuten Shorewall
bull Se necesita agregar una entrada a etcshorewallinterfaces para la interface de red inalaacutembrica Si la interface inalaacutembrica es wlan0 la entrada puede lucir asiacute
ZONE INTERFACE BROADCAST OPTIONSloc wlan0 detect maclist
Como se muestra en la entrada anterior se recomienda usar la opcioacuten maclist para el segmento inalaacutembrico En paralelo agregue las entradas para las computadoras 3 y 4 en etcshorewallmaclist para prevenir que sus vecinos obtengan una conexioacuten gratuita a internet a sus expensas Comience por omitir esta opcioacuten cuando tenga todo funcionando entonces agregue esta opcioacuten y configure su archivo etcshorewallmaclist
bull Usted necesita agregar una entrada al archivo etcshorewallmasq para enmascarar el traacutefico desde la red inalaacutembrica hacia internet Si su interface hacia internet es eth0 y su interface inalaacutembrica es wlan0 la entrada seriacutea asiacute
INTERFACE SUBNET ADDRESSeth0 wlan0
Otra cosa a notar para poner la red de Microsofttrade a funcionar entre las redes inalaacutembrica y cableada necesitaraacute ya sea un servidor WINS o un PDC Yo personalmente uso Samba configurado como servidor WINS corriendo en mi firewall Correr un servidor WINS en el firewall requiere las reglas que se listan en documentacioacuten ShorewallSamba
Guiacutea de Configuracioacuten de Shorewall
Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
Precaucioacuten
Este artiacuteculo aplica a Shorewall 30 en adelante Si estaacute corriendo una versioacuten previa de Shorewall 300 entonces por favor vea la documentacioacuten para dicha liberacioacuten
Introduccioacuten
Esta guiacutea estaacute destinada a los usuarios que desean configurar Shorewall en entornos donde un conjunto de direcciones IP puacuteblicas deben ser manejadas Para quienes desean conocer maacutes acerca de Shorewall en otros entornos revise las Guiacuteas Raacutepidas de Shorewall Debido a las amplias diferentes posibles aplicaciones la Guiacutea le daraacute directrices y apuntaraacute hacia otros recursos si ello es necesario
Precaucioacuten
Shorewall requiere el paquete iprouteiproute2 instalado (en RedHat el paquete se llama iproute) Usted puede saber si el paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando ldquowhichrdquo para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se recomienda que primero lea la guiacutea para que se familiarice con lo que estaacute involucrado y luego vuelva hacia atraacute y comience sobre los cambios de configuracioacuten requeridos Los puntos donde se recomiendan cambios de
configuracioacuten se sentildealan con
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windows usted debe salvarlos como archivos Unix si su editor soporta dicha opcioacuten o debe ejecutar dicho archivo con dos2unix antes de usarlo con Shorewall De forma similar si copia un archivo de configuracioacuten desde su disco duro en Windows a un disco flexible debe ejecutar previamente dos2unix contra la copia antes de usarla con Shorewall
bull Enlace a versioacuten Windows de dos2unix httpwwwsimtelnetpubpd51438html bull Enlace a versioacuten Linux de dos2unix httpwwwmegalomancom7Ehanysoftwarehd2u
Conceptos de Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall para la mayoriacutea de las configuraciones soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea El esqueleto de archivos de configuracioacuten es creado durante el Proceso de Instalacioacuten de Shorewall
Alerta
Nota para los Usuarios Debian
Si instala usando un deb encontraraacute que el directorio etcshorewall estaacute vaciacuteo Esto es intencional Los archivos del esqueleto correspondientes a la liberacioacuten correspondiente pueden encotrarse en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no los modifica
En la medida que introducimos cada archivo sugerimos que revise dicho archivo en su sistema cada archivo contiene instrucciones detalladas de configuracioacuten
Shorewall ve la red donde estaacute corriendo como si estuviera compuesta de un conjunto de zonas En esta guiacutea usaremos las siguientes zonas
fw
El propio sistema firewall
net
La red puacuteblica Internet
loc
La red local privada que usa direcciones IP privadas
dmz
Una Zona Desmilitarizada que aloja servidores de acceso puacuteblico
Las zonas se definen en el archivo etcshorewallzones
Importante
El archivo etcshorewallzones incluiacutedo en la distribucioacuten estaacute vaciacuteo Usted puede crear el conjunto de zonas estandar descritas anteriormente copiando y pegando el siguiente contenido en dicho archivo
ZONE TYPE OPTIONSfw firewallnet ipv4loc ipv4dmz ipv4
Note que Shorewall reconoce al sistema firewall como su propia zona El ejemplo anterior sigue la convencioacuten usual de nombres zona firewall fw El nombre especificado para la zona firewall (fw en el ejemplo anterior) se almacena en la variable shell $FW cuando se procesa el archivo etcshorewallzones Con la excepcioacuten del nombre asignado a la zona firewall Shorewall no asocia ninguacuten significado especial a los nombes de zona Las zonas son lo que USTED hace de ellas Ello significa que no debe esperar que Shorewall haga algo especial porque esta es la zona interna o porque esta es la zona DMZ
Edite el archivo etcshorewallzones y haga los cambios necesarios
La reglas acerca de queacute traacutefico permitir y negar se expresan en teacuterminos de las zonas
bull Usted expresa la poliacutetica por omisioacuten para conexiones desde una a otra zona en el archivo etcshorewallpolicy
bull Usted define excepciones a dichas poliacuteticas en etcshorewallrules
Shorewall se construye sobre el motor de kernel Netfilter Netfilter implementa la funcioacuten de seguimiento de conexiones que permite lo que se denomina como inspeccioacuten por estado (stateful inspection) de paquetes Esta capacidad de manejar los estados permite que las reglas de firewall sean definidas en teacuterminos de conexiones en vez de paquetes Con Shorewall usted
1 Identifica la zona origen (cliente)2 Identifica la zona destino (servidor)3 Si la POLITICA de la zona cliente a la zona servidor es lo que desea para esta pareja clienteservidor no
necesita hacer nada adicional4 Si la POLITICA no es lo que desea entonces debe agregar una regla La regla se expresa en teacuterminos de la
zona del cliente y de la zona del servidor
Soacutelo porque las conexiones de un tipo particular desde la zona A hacia el firewall estaacuten permitidas y que tambieacuten estaacuten permitidas desde el firewall a la zona B NO sigifica que estas conexiones esten permitidas entre la zona A y la zona B (en otras palabras las poliacuteticas y reglas que involucran a la zona firewall no son transitivas) A cambio significa que usted puede tener un proxy corriendo en el firewall que acepta conexiones desde la zona A y luego establece conexiones separadas por siacute mismo desde el firewall hacia la zona B
Para cada solicitud de conexioacuten que entra al firewall la solicitud se chequea primero contra el archivo etcshorewallrules Si ninguna regla del archivo aplica se aplica a la solicitud de conexioacuten la primera poliacutetica en etcshorewallpolicy que corresponda con dicha solicitud despueacutes de que haya pasado por la accioacuten comuacuten apropiada (si existe alguna)
Previo a Shorewall 220 el archivo por omisioacuten etcshorewallpolicy teniacutea las siguientes poliacuteticas
SOURCE ZONE DESTINATION ZONE POLICY LOG LIMITBURST LEVELloc net ACCEPTnet all DROP infoall all REJECT info
Importante
El archivo de poliacuteticas de la versioacuten actual estaacute vaciacuteo Usted puede copiar y pegar las entradas anteriores para crear un punto de partida para luego personalizar sus poliacuteticas
Las poliacuteticas anteriores haraacuten que
1 permitiraacute todas las solicitudes de conexiones desde la red local hacia internet2 descartaraacute (ignoraraacute) todas las solicitudes de conexiones desde internet hacia su firewall o red local y se
registra un mensaje a nivel informativo (info level log vea aquiacute la descripcioacuten de los niveles de registro)3 rechaza todas las solicitudes de conexiones y registra un mensaje a nivel informativo Cuando una solicitud
se rechaza el firewall devuelve un RST (si el protocolo es TCP) o un paquete ICMP de puerto-inalcanzabe para los otros protocolos
En este punto edite su archivo etcshorewallpolicy y haga los cambios que desee
Interfaces de Red
Para el resto de esta guiacutea nos referiremos al siguiente diagrama Si bien puede que no luzca como el de su red puede usarse para ilustrar los aspectos importantes de la configuracioacuten Shorewall
En este diagrama
bull La Zona DMZ consiste de los sistemas DMZ 1 y DMZ 2 Una DMZ se usa para aislar su servidors accesibles desde internet de sus sistemas locales tal que si uno de esos servidores estaacute comprometido auacuten tendraacute el firewall entre el sistema comprometido y sus sistemas en la red local
bull La Zona Local consiste de los sistemas Local 1 Local 2 y Local 3bull Todos los sistemas desde el ISP hacia afuera componen la Zona Internet
La forma maacutes cimple de definir zonas es asociar el nombre de la zona (previamente definida en etcshorewallzones) con una interface de red Esto se hace en el archivo etcshorewallinterfaces El firewall ilustrado arriba tiene tres interfaces de red Donde la conectividad hacia Internet es hecha a traveacutes de un cable Modem o DSL la Interface Externa seraacute un adaptador Ethernet que se ecneuntra conectado al Modem (eg eth0) a menos que conecte usando Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta usando un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces desearaacute establecer CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Local seraacute un adaptador Ethernet (eth0 eth1 o eth2) y conectaraacute a un hub o switch Sus computadores locales estaraacuten conectadas al mismo switch o hub (nota Si tiene un uacutenico sistema local puede conectar directamente el firewall al computador utilizando un cable cruzado)
Su Interface DMZ tambieacuten seraacute un adaptador Ethernet (eth0 eth1 o eth2) y se conectaraacute a un hub o switch Sus computadores DMZ seraacuten conectados al mismo switch o hub (nota Si tiene un uacutenico sistema DMZ puede conectar directamente el firewall al computador usando un cable cruzado)
Precaucioacuten
No conecte la interace interna y externa al mismo hub o switch exceptuando para pruebas Y estaacute corriendo Shorewall 147 o superior Cuando use estas versiones recientes puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en el archivo etcshorewallinterfaces para todas las interfaces conectadas al mismo hubswitch No se recomienda utilizar tal configuracioacuten con un firewall de produccioacuten
Para el resto de esta guiacutea asumiremos que
bull La Interface Externa es eth0bull La Interface Local es eth1bull La Interface DMZ es eth2
La cinfiguracioacuten Shorewall por omisioacuten no define el contenido de ninguna zona Para definir la configuracioacuten de arriba usando el archivo etcshorewallinterfaces dicho archivo contendriacutea
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectdmz eth2 detect
Note que la zona $FW no tiene una entrada en el archvio etcshorewallinterfaces
Edite el archivo etcshorewallinterfaces y defina las interfaces de red de su firewall asociadas con su zona Si tiene una zona disponible a traveacutes de maacutes de una interface de red simplemente incluya una entrada para cada interface y repita el nombre de zona tantas veces como haga falta con su respectiva interface de red
Ejemplo 1 Muacuteltiples Interfaces hacia una Zona
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectloc eth2 detect
Usted puede definir zonas maacutes complicadas usando el archivo etcshorewallhosts pero en la mayoriacutea de los casos ello no es necesario Vea Shorewall_and_Aliased_Interfaceshtml y Multiple_Zoneshtml para algunos ejemplos
Direccionamiento Subredes y Enrutamiento
Normalmente su ISP le asignaraacute un conjunto de direcciones IP Puacuteblicas Usted configuraraacute su interface externa de su firewall para que use una de dichas direcciones permanentemente y entonces tendraacute que decidir como usaraacute el resto de sus direcciones Antes de que contestemos esta pregunta es conveniente primero revisar los fundamentos
Si usted estaacute ampliamente familiarizado con el direccionamiento IP y el enrutamiento puede ir directo a la proacutexima seccioacuten
La siguiente discusioacuten revisa someramente el direccionamiento y el enrutamiento IP Si estaacute interesado en aprender maacutes acerca del tema le recomendaos ampliamente ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0
Direcciones IP
Las direcciones IP versioacuten 4 (IPv4) son nuacutemeros de 32 -bits La notacioacuten wxyz refiere a una direccioacuten donde el byte de orden superior tiene el valor ldquowrdquo el proacuteximo byte tiene el valor ldquoxrdquo etc Si tomamos la direccioacuten 1920214 y la expresamos en hexadecimal obtenemos
C000020E
o viacuteendolo como un entero de 32-bits
C000020E
Subredes
Usted comenzaraacute a escuchar los teacuterminos ldquored Clase Ardquo ldquored Clase B y red Clase C En los primeros diacuteas de IP las redes veniacutean en tres tamantildeos (existiacutea tambieacuten redes Clase D pero era usada de forma diferente)
Clase A - maacutescara de red 255000 size = 2 24Clase B - maacutescara de red 25525500 size = 2 16
Clase C - maacutescara de red 2552552550 size = 256
La clase de una red era determinada uniacutevocamente por el valor del byte superior de su direccioacuten tal que usted pudiera ver la direccioacuten IP e inmediatamente determinara la maacutescara asociada La maacutescara de red es un nuacutemero que cuando se aplica un Y loacutegico con la direccioacuten separa la direccioacuten de red del resto que es la direccioacuten de host Por ejemplo la direccioacuten Clase C 1920214 la direccioacuten de red es el hexadecimal C00002 y el nuacutemero de host es 0E
En la medida que internet crecioacute se hizo claro que tal particionamiento tan grueso de direcciones de 32-bits iva a ser muy limitante (iexclPreviamente a las grandes corporaciones y universidades le fueron asignadas sus propias redes clase A) Despueacutes de unos arranques en falso la teacutecnica de subredes evolucionoacute al sistema actual de redes maacutes pequentildeas la teacutecnica se le refiere como Classless InterDomain Routing (CIDR) Hoy diacutea cualquier sistema que usted probablemente use entenderaacute CIDR y las redes basadas en clases son ya algo del pasado
Una subred es un conjunto contiguo de direcciones IP tal que
1 La cantidad de direcciones en el conjunto es una potencia de 2 y2 La primera direccioacuten en el conjunto es un muacuteltiplo del tamantildeo del conjunto3 La primera direccioacuten en la subred se reserva y se le refiere como la direccioacuten de subred4 La uacutetima direccioacuten en la subred estaacute reservada como la direccioacuten de difusioacuten(broadcast) de la subred
Como puede ver por definicioacuten en cada subred de tamantildeo n hay (n - 2) direcciones utilizables (direcciones que se pueden asignar a maacutequinas) La primera y uacuteltima direccioacuten en la subred son utilizadas como direccioacuten de la subred y direccioacuten de difusioacuten respectivamente En consecuencia las subredes maacutes pequentildeas desperdician maacutes direcciones IP que las redes maacutes grandes
Ya que n es una potencia de dos faacutecilmente podemos calcular el Logaritmo-Base2 (log2) de n Para los tamantildeos maacutes comunes de subred el tamantildeo y su logaritmos base 2 son dados por la siguiente tabla
Tabla 1 Logaritmos Base-2
n log2 n (32 - log2 n)
8 3 29
16 4 28
32 5 27
64 6 26
128 7 25
256 8 24
512 9 23
1024 10 22
2048 11 21
4096 12 20
8192 13 19
16384 14 18
32768 15 17
65536 16 16
Notaraacute que la tabla arriba tambieacuten contiene una columna parar (32 - log2 n) Este nuacutemero es la Variable Length Subnet Mask (VLSM) para una red de tamantildeo n De la tabla arriba podemos derivar la siguiente que es un poco maacutes faacutecil de usar
Tabla 2 VLSM
Subnet Size VLSM Subnet Mask
8 29 255255255248
16 28 255255255240
32 27 255255255224
64 26 255255255192
128 25 255255255128
256 24 2552552550
512 23 2552552540
1024 22 2552552520
2048 21 2552552480
4096 20 2552552400
8192 19 2552552240
16384 18 2552551920
32768 17 2552551280
65536 16 25525500
2 24 8 255000
Note que la VLSM se escribe con barra (ldquordquo) -- a menudo escucharaacute de una subred de tamantildeo 64 referida como una subred ldquobarra 26rdquo y una de tamantildeo 8 referida como de ldquobarra 29rdquo
La maacutescara de subred es simplemente un nuacutemero de 32 bits con los primeros ldquoVLSMrdquo bits puestos a uno y los remanentes bits puestos a cero Por ejemplo para una subred de tamantildeo 64 la maacutescara de subred tiene los primeros 26 bits en uno
11111111111111111111111111000000 = FFFFFFC0 = FFFFFFC0 = 255255255192
La maacutescara de subred tiene la propiedad de que si se hace un Y loacutegico con una direccioacuten en la subred el resultado es la direccioacuten de la subred Igual de importante si hace un Y loacutegico de la maacutescara de subre con una direccioacuten fuera de la subred el resultado NO es la direccioacuten de la subred Como ya veremos esta propiedad de la maacutescara de subred es muy uacutetil para el enrutamiento
Para una subred cuya direccioacuten es abcd y cuyo Variable Length Subnet Mask es v denotamos la subred como ldquoabcdvrdquo usando Notacioacuten CIDR Ejemplo
Tabla 3 Subred
Subred 1010100 - 101010127
Tamantildeo Subred 128
Direccioacuten Subred 1010100
Direccioacuten Difusioacuten 101010127
Notacioacuten CIDR 101010025
Existen dos subredes degeneradas que merecen ser nombradas la subred con un miembro y la subre con 2 32 miembros
Tabla 4 32 y 0
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
Alerta
No conecte la interface interna y externa al mismo hub o switch exceptuado para pruebas Usted puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en etcshorewallinterfaces para todas las interfaces comunes al mismo hubswitch Usando tal configuracioacuten con un firewall en produccioacuten no es para nada recomendable
La muestra two-interface de Shorewall asume que la interface externa es eth0 y que la interface interna es eth1 Si su configuracioacuten difiere tendraacute que modificar la muesta acordemente en el archivo etcshorewallinterfaces Mientra esteacute ahiacute puede revisar la lista de opciones que le son especiacuteficas para las interfaces Algunas pistas
Tip
Si su interface externa es ppp0 o ippp0 puede remplazar en la segunda columna detect con ldquo-rdquo (sin las comillas)
Tip
Si su interface externa es ppp0 o ippp0 o si tiene una direccioacuten IP estaacutetica puede eliminar dhcp de la lista de opciones
Tip
Si su interface interna es un puente (bridge) cree If your internal interface is a bridge create using the brctl utility then you must add the routeback option to the option list
Direcciones IP
Antes de seguir avanzando debemos decir unas cuantas palabras acerca de las direcciones Internet Protocol (IP) Normalmente su ISP le asignaraacute una uacutenica direccioacuten IP Puacuteblica Esta direccioacuten puede ser asignada viacutea Dynamic Host Configuration Protocol (DHCP) o como parte del establecimiento de su conexioacuten cuando disca (modem estandar) o establece su conexioacuten PPP En raras ocasiones su ISP le asignaraacute una direccioacuten IP estaacutetica esto significa que usted configuraraacute la interface exerna de su firewall para usar permanentemente esa direccioacuten Sin embargo su direccioacuten IP asignada seraacute compartida por todos sus sistemas cuando accedan a Internet Usted tendraacute que asignar sus propias direcciones en su red interna (la Interface Interna en su firewall maacutes las otras computadores) El RFC 1918 reserva varios rangos de direcciones Privadas IP para ese propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Antes de arrancar Shoreall usted debe ver la direccioacuten IP de su interface externa y si es una dentro de los rangos descritos arriba deberiacutea quitar la opcioacuten norfc1918 de la entrada que corresponde a su interface externa en etcshorewallinterfaces
Usted querraacute asignar sus direcciones desde la misma subred Para nuestros propoacutesitos podemos considerar una subred que consista de un rango de direcciones xyz0 - xyz255 Tal subred tendraacute una maacutescara de red de 2552552550 La direccioacuten xyz0 se reserva como la Direccioacuten de Subred y xyz255 se reserva como la Direccioacuten de Difusioacuten de la Subred (Boradcast) En Shorewall una subred se describe usando la notacioacuten Classless InterDomain Routing (CIDR) que consiste de direcciones de subred seguida de 24 El ldquo24rdquo se refiere a la cantidad de 1 consecutivos a la cabeza de la maacutescara de red
Rango 1010100 - 101010255
Direccioacuten de Subred 1010100
Direccioacuten de Difusioacuten 101010255
Notacioacuten CIDR 101010024
Es convencioacuten asignarle la primera direccioacuten utilizable en la subred a la interface interna (1010101 en el ejemplo anterior) o la uacuteltima (101010254)
Uno de los propoacutesitos de hacer subredes es permitir a todas las computadoras en la subred entender queacute otras computadoras pueden comunicarse con ellas directamente Para comunicarse con sistemas fuera de la subre los sistemas deben enviar los paquetes a su detino final a traveacutes de un gateway (enrutador)
Sus computadoras locales (computer 1 y computer 2 en el diagrama arriba) deben ser configuradas con el default gateway a la direccioacuten IP de la interface interna del firewall
La discusioacuten a continuacioacuten repasa por encima los temas de subredes y enrutamiento Si estaacute interesado en aprender maacutes acerca del direccionamiento y el enrutamiento IP si le recomienda altamente el libro ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0 (enlace)
El resto de esta guiacutea asume que tiene su red dispuesta de esta forma
El default gateway para las computdores 1 y 2 seriacutea 101010254
Alerta
Su ISP puede que le asigne una direccioacuten RFC 1918 para su interface externa Si dicha direccioacuten estaacute en la subred 101010024 entonces tendraacute que seleccionar una subred DIFERENTE RFC 1918 para su red local
Enmascaramiento IP (SNAT)
Las direcciones reservadas por el RFC 1918 son a veces referidas como no-ruteable debido a que los enrutadores en el corazoacuten de Internet no se renviacutean los paquetes IP cuando tienen como destino una direccioacuten RFC 1918 Cuando uno de su sistemas locales (digamos computer 1) enviacutea una solicitud de conexioacuten a una maacutequina en Internet el firewall debe hacer Network Address Translation (NAT Traduccioacuten de Direccioacuten de Red) El firewall rescribe la direccioacuten de origen en el paquete para que sea la direccioacuten de la interface externa del firewall en otras palabras el
firewall hace parecer que la solicitud de conexioacuten fueacute originada en el propio firewall Esto es necesario hacerlo para la maaacutequina destino sea capaz de enrutar la respuesta de vuelta hasta el firewall (recuerde que los paquetes cuyos destinos es una direccioacuten RFC 1918 no son enrutados a traveacutes de internet para que la respuesta vuelva su origen en computer 1) Cuando el firewall recibe un paquete de respuesta rescribe la direccioacuten de destino de vuelta a 1010101 y enviacutea el paquete a computer 1
En los sistemas Linux el proceso anterior es conocido como Enmascaramiento IP pero tambieacuten veraacute el uso del teacutermino Source Network Address Translation (SNAT) Shorewall sigue la convencioacuten que usa Netfilter
bull Enmascaramiento (Masquerade) describe el caso donde se permite al sistema firewall detectar automaacuteticamente la direccioacuten de la interface externa
bull SNAT se refiere al caso donde expliacutecitamente especifica la direccioacuten origen que desea usar en los paquetes salientes
En Shorewall tanto Enmascaramiento y SNAT se configuran con entradas en el archivo etcshorewallmasq Normalmente usaraacute Enmascaramiento si su direccioacuten IP en la interface externa es dinaacutemica y SNAT en el caso de direccioacuten IP estaacutetica
Si la interface externa de su firewall es eth0 no se necesita modificar el archivo provisto con la muestra De otra forma edite etcshorewallmasq y cambie la primera columna para que refleje el nombre de su interface externa y la segunda columna el nombre de su interface interna
Si su direccioacuten IP externa es estaacutetica puede enterarla en la tercrea columna en etcshorewallmasq si desea si bien su firewall funcionaraacute bien si no lo hace Enterar su direccioacuten IP estaacutetica en la tercera columna hace que procesar los paquetes salientes sea un poco maacutes eficiente
Si estaacute usando el paquete Debian por favor revise su archivo shorewallconf para asegurarse que lo siguiente esteacute escrito correctamente si no es asiacute caacutembielo apropiadamente
bull IP_FORWARDING=On
Desviacuteo de Puerto (DNAT)
Una de sus metas puede ser correr uno o mas servidores en sus sistemas locales Ya que dichas computadoras tienen direcciones RFC-1918 no es posible a los clientes en internet conectar directamente con ellas En cambio es necesario para dichos clientes dirigir sus solicitudes de conexioacuten hacia el firewall quien rescribe la direccioacuten destino a la direccioacuten de su servidor y enviacutea el paquete al servidor Cuando su servidor responde el firewall automaacuteticamente realiza SNAT para rescribir la direccioacuten origen en la respuesta
El proceso anterior es llamado Desviacuteo de Puerto o Port Forwarding o Destination Network Address Translation (DNAT) Usted puede configurar el desviacuteo de puerto usando las reglas DNAT en el archivo etcshorewallrules
La forma general de una regla de desviacuteo de puerto simple en etcshorewallrules es
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net locltserver local ip addressgt[ltserver portgt] ltprotocolgt ltportgt
Shorewall incorpora macros para muchas de las aplicaciones populares Revise en usrshareshorewallmacro para identificar los macros disponibles en su versioacuten Los macros simplemente crean reglas DNAT suministrando el protocolo y puerto(s) como se muestra en los siguientes ejemplos
Ejemplo 1 Servidor Web
Usted estaacute corriendo un Servidor Web en computer 2 y desea desviar el puerto entrante TCP 80 a este sistema
ACTION SOURCE DEST PROTO DEST PORT(S)WebDNAT net loc1010102
Ejemplo 2 Servidor FTP
Usted estaacute corriendo un Servidor FTP en computer 1 tal que desea entonces desviar el puerto entrante TCP 21 a ese sistema
ACTION SOURCE DEST PROTO DEST PORT(S)FTPDNAT net loc1010101
Para FTP necesitaraacute adicionalmente el motor de seguimiento de conexiones y el soporte NAT en su kernel Para los kernel provistos por el vendedor esto significa que los moacutedulos ip_conntrack_ftp y ip_nat_ftp deben ser cargados Shorewall cargaraacute automaacuteticamente dichos moacutedulos si estaacuten disponibles y localizados en el lugar estandar bajo libmodulesltkernel versiongtkernelnetipv4netfilter
Un par de puntos importantes a mantener en mente son
bull Usted debe probar la regla anterior desde un cliente externe a su red local (ie no pruebe desde un explorador en los computadores 1 o 2 o en el firewall) Si desea ser capaz de acceder a su servidor web yo ftp desde adentro de su fireall usando la direccioacuten IP de su interface externa vea Shorewall FAQ 2
bull Muchos ISPs bloquean las solicitudes entrantes al puerto 80 Si tiene problemas conectaacutendose a su servidor intente seguir la siguiente regla y conectar al puerto 5000
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net loc101010280 tcp 5000
En este punto modifique etcshorewallrules para agregar cualquier regla DNAT que se requiera
Importante
Cuando pruebe las reglas DNAT como las anteriores debe realizar las pruebas desde un cliente AFUERA de su fiewall (en la zona net ) Usted no puede probar estas reglas desde la parte interior del firewall
Para tips de Resolucioacuten de Problemas con DNAT vea FAQs 1a y 1b
Domain Name Server (DNS)
Normalmente cuando usted conecta con su ISP y como parte del proceso de obtener una direccioacuten IP el resolutor Domain Name Service (DNS) del firewall seraacute automaacuteticamente configurado (eg el archivo etcresolvconf seraacute rescrito) Alternativamente su ISP puede darle la direccioacuten IP de un par de servidores de nombre DNS para que manualmente los configure como servidores de nombre primario y secundario respectivamente Sin importar la forma en coacutemo se configuran los servidores DNS en su firewall es su responsabilidad configurar el resolutor en sus sistemas internos Puede escoger uno de dos caminos
bull Configura sus sistemas internos para que usen los servidores de nombre de su ISP Si su ISP le ha suministrado las direcciones de sus servidores DNS o de otros disponibles en su sitio web usted puede configurar sus sistemas internos para que usen dichas direcciones Si dicha informacioacuten no estaacute disponible vea en el archivo etcresolvconf de su sistema firewall -- los servidores de nombre son declarados con los registros nameserver en este archivo
bull Puede configurar un Cache Servidor de Nombres en su firewall Red Hattrade tiene un RPM para el cache servidor de nombres (el RPM tambieacuten requier el RPM bind) y para los usuarios Bering hay un dnscachelrp Si toma este camino usted configuraraacute sus sistemas internos para que usen el mismo firewall como su servidor primario (o uacutenico) de nombres Usariacutea la direccioacuten IP interna de su firewall (101010254 en el ejemplo anterior) como direccioacuten del servidor de nombres Para permitir a los sistemas locales hablar con el cache servidor de nombre deberaacute abrir el puerto 53 (ambos UDP y TCP) desde la red local hacia el firewall esto lo hace agregar las siguientes reglas en etcshorewallrules
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT loc $FW
Otras Conexiones
La muestra two-interface incluye las siguientes reglas
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT $FW net
Esta regla permite el acceso DNS desde su firewall y puede quitarse si ha quitado el comentario en la liacutenea de etcshorewallpolicy que permite todas las conexiones desde el firewall hacia internet
En la regla que se muestra arriba ldquoDNSACCEPTrdquo es un ejemplo de una invocacioacuten macro Shorewall incluye una cantidad de macros (vea usrshareshorewallmacro) y usted puede agregar los suyos
Usted no tiene que usar los macros cuando codifique las reglas en etcshorewallrules Shorewall arrancaraacute ligeramente maacutes raacutepido si codifica sus reglas directamente en vez de usar macros La regla anterior tambieacuten pudo haber sido codificada asiacute
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW net udp 53ACCEPT $FW net tcp 53
En los casos donde Shorewall no incluya un macro que satisfaga sus necesidades puede ya sea definir un nuevo macro o simplemente codificar las reglas apropiadas directamente
La muestra tambieacuten incluye
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT loc $FW
Esta regla permite correr el servidor SSH en su firewall y conectarse a eacutel desde los sistemas locales
Si desea habilitar otras conexiones desde su firewall a otros sistemas el formato general usando macros es
ACTION SOURCE DEST PROTO DEST PORT(S)ltmacrogtACCEPT $FW ltdestination zonegt
El formato general cuando no se usan macros predefinidos es
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW ltdestination zonegt ltprotocolgt ltportgt
Ejemplo 3 Servidor Web en el Firewall
Usted desea correr un servidor Web en su sistema firewall
ACTION SOURCE DEST PROTO DEST PORT(S)WebACCEPT net $FWWebACCEPT loc $FW
Estas dos reglas por supuesto seriacutean un agregado a las reglas listadas arriba bajo ldquoPuede configurar un Cache Servidor de Nombres en su firewall rdquo
Si no sabe queacute puerto y protcolo usa una aplicacioacuten particular mire aquiacute
Importante
No recomendados habilitar telnet desdehacia internet porque usa texto en claro para su comunicacioacuten (incluso para el login) Si desea acceso shell para su firewall desde Internet use SSH
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT net $FW
Los usuarios Bering querraacuten agregar las siguientes dos reglas para ser compatibles con la configuracioacuten Shorewall de Jacques
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT loc $FW udp 53 Allow DNS Cache to workACCEPT loc $FW tcp 80 Allow Weblet to work
Ahora edite su archivo etcshorewallrules para agregar o eliminar otras conexiones como se necesario
Algunos Concejos a Mantener en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque enviacutee solicitudes de conexioacuten a la direccioacuten IP de la interface externa de su firewall no significa que la solicitud seraacute asociada con la interface externa o con la zona ldquonetrdquo Cualquier traacutefico que se genere desde la red local seraacute asociado con su interface local y seraacute tratado como traacutefico loc-gtfw
bull Las direcciones IP son propiedades de los sistemas no de las interfaces Es un error pensar que su firewall sea capaz de renviar paquetes soacutelo porque puede hacerle ping a la direccioacuten IP de todas las interfaces IP del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping exitoso es que el enlace entre el sistema local y el firewall funciona bien y que probablemente tenga bien configurado el default gateway del sistema local
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zonas loc poniendo una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO necesariamente siguen automaacuteticamente el camino reverso al tomado por el paquete original de solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso en su camino Este tema usualmente salta a la palestra cuando se instala un firewall Shorewallall en paralelo a un gateway existente y se intenta usar DNAT a traveacutes del Shorewall sin cambiar el default gateway en el sistema que recibe la solicitud renviada Las solicitudes
entraraacuten por el firewall Shorewall donde la direccioacuten IP destino es rescrita pero la respuesta sale sin modificacioacuten por medio del gateway antiguo
bull Shorewall no tiene nocioacuten de adentro o afuera por siacute mismo Estos conceptos se incorporan en el coacutemo se configura Shorewall
Arrancando y Deteniendo Su Firewall
El procedimiento de instalacioacuten configura su sistema para arrancar Shorewall al arrancar (boot) el sistema pero el inicio de Shorewall estaacute deshabilitado por omisioacuten en su configuracioacuten asiacute que no intente arrancar su Shorewall hasta que termine la configuracioacuten Una vez que se hay completado la configuracioacuten de su firewall debe editar su etcshorewallshorewallconf y poner STARTUP_ENABLED=Yes
Importante
Los usuarios del paquete deb deben editar etcdefaultshorewall y poner startup=1
El firewall se arranca usando el comando ldquoshorewall startrdquo y se detiene con el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado para aquellas maacutequinas que tengan una entrada en el archivo etcshorewallroutestopped Un firewall detenido debe ser reiniciado usando el comando ldquoshorewall restartrdquo Si desea eliminar totalmente todo rastro de Shorewall de su configuracioacuten Netfilter use el comando ldquoshorewall clearrdquo
Esta muestra two-interface asume que usted desea habilitar el enrutamiento desdehacia eth1 (la red local) cuando Shorewall estaacute detenido Si su red local no estaacute conectada a eth1 o si desea habilitar el acceso desdehacia otras maacutequinas cambie apropiadamente el archivo etcshorewallroutestopped
Alerta
Si usted estaacute conectado a su firewall desde internet no enviacutee el comando ldquoshorewall stoprdquo a menos que haya agregado una entrada con la direccioacuten IP desde donde se conectoacute al archivo etcshorewallroutestopped Tampoco recomendamos usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarla con el comando ldquoshorewall tryrdquo
Lectura Adicional Recomendada
Se le recomienda altamente la paaacutegina Archivo de Facilidades de Configuracioacuten Comunes -- contiene tips uacutetiles acerca de las facilidades Shorewall que hacen maacutes faacutecil la administracioacuten del firewall Shorewall
Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
Una vez que tiene su arreglo de dos interfaces funcionando el siguiente paso loacutegico es agregar una conexioacuten de red inalaacutembrica El primer paso es agergar la tarjeta de red adicional a su firewall ya sea una tarjeta inalaacutembirca o una tarjeta ethernet que conecte a un punto de acceso inalaacutembirco
Precaucioacuten
Cuando agrega una tarjeta de red eacutesta no seraacute necesariamente detectada como la siguiente interface ethernet superior Por ejemplo si tiene dos interfaces ethernet en su sistema (eth0 and eth1) y agrega una tercera tarjeta que usa el mismo manejador (driver) de alguna de las dos anteriores la tercera no necesariamente seraacute detectada como eth2 mal pudiera ser detectada como eth0 o eth1 Usted puede ya sea vivir con ello o puede intercambiar las tarjetas en los soacutecates hasta que la nueva tarjeta sea detectada como eth2
Su nuevo arreglo de red luciraacute similar a la figura siguiente
La primera cosa notable es que las computadores en su red inalaacutembrica estan en una subred diferente a los de su red cableada en la LAN En el ejemplo de arriba hemos escogido usar la red 101011024 Las computadoras 3 y 4 seriacutean configuradas con la direccioacuten IP del default gateway IP a 101011254
Segundo hemos escogido incluir la red inalaacutembrica como parte de la zona local Ya que Shorewall permite el traacutefico en-la-zona por omisioacuten el traacutefico puede fluir libremente entre la red cableada local y la red inalaacutembrica
Hay soacutelo dos cambios necesarios para nuestra configuracioacuten Shorewall
bull Se necesita agregar una entrada a etcshorewallinterfaces para la interface de red inalaacutembrica Si la interface inalaacutembrica es wlan0 la entrada puede lucir asiacute
ZONE INTERFACE BROADCAST OPTIONSloc wlan0 detect maclist
Como se muestra en la entrada anterior se recomienda usar la opcioacuten maclist para el segmento inalaacutembrico En paralelo agregue las entradas para las computadoras 3 y 4 en etcshorewallmaclist para prevenir que sus vecinos obtengan una conexioacuten gratuita a internet a sus expensas Comience por omitir esta opcioacuten cuando tenga todo funcionando entonces agregue esta opcioacuten y configure su archivo etcshorewallmaclist
bull Usted necesita agregar una entrada al archivo etcshorewallmasq para enmascarar el traacutefico desde la red inalaacutembrica hacia internet Si su interface hacia internet es eth0 y su interface inalaacutembrica es wlan0 la entrada seriacutea asiacute
INTERFACE SUBNET ADDRESSeth0 wlan0
Otra cosa a notar para poner la red de Microsofttrade a funcionar entre las redes inalaacutembrica y cableada necesitaraacute ya sea un servidor WINS o un PDC Yo personalmente uso Samba configurado como servidor WINS corriendo en mi firewall Correr un servidor WINS en el firewall requiere las reglas que se listan en documentacioacuten ShorewallSamba
Guiacutea de Configuracioacuten de Shorewall
Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
Precaucioacuten
Este artiacuteculo aplica a Shorewall 30 en adelante Si estaacute corriendo una versioacuten previa de Shorewall 300 entonces por favor vea la documentacioacuten para dicha liberacioacuten
Introduccioacuten
Esta guiacutea estaacute destinada a los usuarios que desean configurar Shorewall en entornos donde un conjunto de direcciones IP puacuteblicas deben ser manejadas Para quienes desean conocer maacutes acerca de Shorewall en otros entornos revise las Guiacuteas Raacutepidas de Shorewall Debido a las amplias diferentes posibles aplicaciones la Guiacutea le daraacute directrices y apuntaraacute hacia otros recursos si ello es necesario
Precaucioacuten
Shorewall requiere el paquete iprouteiproute2 instalado (en RedHat el paquete se llama iproute) Usted puede saber si el paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando ldquowhichrdquo para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se recomienda que primero lea la guiacutea para que se familiarice con lo que estaacute involucrado y luego vuelva hacia atraacute y comience sobre los cambios de configuracioacuten requeridos Los puntos donde se recomiendan cambios de
configuracioacuten se sentildealan con
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windows usted debe salvarlos como archivos Unix si su editor soporta dicha opcioacuten o debe ejecutar dicho archivo con dos2unix antes de usarlo con Shorewall De forma similar si copia un archivo de configuracioacuten desde su disco duro en Windows a un disco flexible debe ejecutar previamente dos2unix contra la copia antes de usarla con Shorewall
bull Enlace a versioacuten Windows de dos2unix httpwwwsimtelnetpubpd51438html bull Enlace a versioacuten Linux de dos2unix httpwwwmegalomancom7Ehanysoftwarehd2u
Conceptos de Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall para la mayoriacutea de las configuraciones soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea El esqueleto de archivos de configuracioacuten es creado durante el Proceso de Instalacioacuten de Shorewall
Alerta
Nota para los Usuarios Debian
Si instala usando un deb encontraraacute que el directorio etcshorewall estaacute vaciacuteo Esto es intencional Los archivos del esqueleto correspondientes a la liberacioacuten correspondiente pueden encotrarse en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no los modifica
En la medida que introducimos cada archivo sugerimos que revise dicho archivo en su sistema cada archivo contiene instrucciones detalladas de configuracioacuten
Shorewall ve la red donde estaacute corriendo como si estuviera compuesta de un conjunto de zonas En esta guiacutea usaremos las siguientes zonas
fw
El propio sistema firewall
net
La red puacuteblica Internet
loc
La red local privada que usa direcciones IP privadas
dmz
Una Zona Desmilitarizada que aloja servidores de acceso puacuteblico
Las zonas se definen en el archivo etcshorewallzones
Importante
El archivo etcshorewallzones incluiacutedo en la distribucioacuten estaacute vaciacuteo Usted puede crear el conjunto de zonas estandar descritas anteriormente copiando y pegando el siguiente contenido en dicho archivo
ZONE TYPE OPTIONSfw firewallnet ipv4loc ipv4dmz ipv4
Note que Shorewall reconoce al sistema firewall como su propia zona El ejemplo anterior sigue la convencioacuten usual de nombres zona firewall fw El nombre especificado para la zona firewall (fw en el ejemplo anterior) se almacena en la variable shell $FW cuando se procesa el archivo etcshorewallzones Con la excepcioacuten del nombre asignado a la zona firewall Shorewall no asocia ninguacuten significado especial a los nombes de zona Las zonas son lo que USTED hace de ellas Ello significa que no debe esperar que Shorewall haga algo especial porque esta es la zona interna o porque esta es la zona DMZ
Edite el archivo etcshorewallzones y haga los cambios necesarios
La reglas acerca de queacute traacutefico permitir y negar se expresan en teacuterminos de las zonas
bull Usted expresa la poliacutetica por omisioacuten para conexiones desde una a otra zona en el archivo etcshorewallpolicy
bull Usted define excepciones a dichas poliacuteticas en etcshorewallrules
Shorewall se construye sobre el motor de kernel Netfilter Netfilter implementa la funcioacuten de seguimiento de conexiones que permite lo que se denomina como inspeccioacuten por estado (stateful inspection) de paquetes Esta capacidad de manejar los estados permite que las reglas de firewall sean definidas en teacuterminos de conexiones en vez de paquetes Con Shorewall usted
1 Identifica la zona origen (cliente)2 Identifica la zona destino (servidor)3 Si la POLITICA de la zona cliente a la zona servidor es lo que desea para esta pareja clienteservidor no
necesita hacer nada adicional4 Si la POLITICA no es lo que desea entonces debe agregar una regla La regla se expresa en teacuterminos de la
zona del cliente y de la zona del servidor
Soacutelo porque las conexiones de un tipo particular desde la zona A hacia el firewall estaacuten permitidas y que tambieacuten estaacuten permitidas desde el firewall a la zona B NO sigifica que estas conexiones esten permitidas entre la zona A y la zona B (en otras palabras las poliacuteticas y reglas que involucran a la zona firewall no son transitivas) A cambio significa que usted puede tener un proxy corriendo en el firewall que acepta conexiones desde la zona A y luego establece conexiones separadas por siacute mismo desde el firewall hacia la zona B
Para cada solicitud de conexioacuten que entra al firewall la solicitud se chequea primero contra el archivo etcshorewallrules Si ninguna regla del archivo aplica se aplica a la solicitud de conexioacuten la primera poliacutetica en etcshorewallpolicy que corresponda con dicha solicitud despueacutes de que haya pasado por la accioacuten comuacuten apropiada (si existe alguna)
Previo a Shorewall 220 el archivo por omisioacuten etcshorewallpolicy teniacutea las siguientes poliacuteticas
SOURCE ZONE DESTINATION ZONE POLICY LOG LIMITBURST LEVELloc net ACCEPTnet all DROP infoall all REJECT info
Importante
El archivo de poliacuteticas de la versioacuten actual estaacute vaciacuteo Usted puede copiar y pegar las entradas anteriores para crear un punto de partida para luego personalizar sus poliacuteticas
Las poliacuteticas anteriores haraacuten que
1 permitiraacute todas las solicitudes de conexiones desde la red local hacia internet2 descartaraacute (ignoraraacute) todas las solicitudes de conexiones desde internet hacia su firewall o red local y se
registra un mensaje a nivel informativo (info level log vea aquiacute la descripcioacuten de los niveles de registro)3 rechaza todas las solicitudes de conexiones y registra un mensaje a nivel informativo Cuando una solicitud
se rechaza el firewall devuelve un RST (si el protocolo es TCP) o un paquete ICMP de puerto-inalcanzabe para los otros protocolos
En este punto edite su archivo etcshorewallpolicy y haga los cambios que desee
Interfaces de Red
Para el resto de esta guiacutea nos referiremos al siguiente diagrama Si bien puede que no luzca como el de su red puede usarse para ilustrar los aspectos importantes de la configuracioacuten Shorewall
En este diagrama
bull La Zona DMZ consiste de los sistemas DMZ 1 y DMZ 2 Una DMZ se usa para aislar su servidors accesibles desde internet de sus sistemas locales tal que si uno de esos servidores estaacute comprometido auacuten tendraacute el firewall entre el sistema comprometido y sus sistemas en la red local
bull La Zona Local consiste de los sistemas Local 1 Local 2 y Local 3bull Todos los sistemas desde el ISP hacia afuera componen la Zona Internet
La forma maacutes cimple de definir zonas es asociar el nombre de la zona (previamente definida en etcshorewallzones) con una interface de red Esto se hace en el archivo etcshorewallinterfaces El firewall ilustrado arriba tiene tres interfaces de red Donde la conectividad hacia Internet es hecha a traveacutes de un cable Modem o DSL la Interface Externa seraacute un adaptador Ethernet que se ecneuntra conectado al Modem (eg eth0) a menos que conecte usando Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta usando un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces desearaacute establecer CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Local seraacute un adaptador Ethernet (eth0 eth1 o eth2) y conectaraacute a un hub o switch Sus computadores locales estaraacuten conectadas al mismo switch o hub (nota Si tiene un uacutenico sistema local puede conectar directamente el firewall al computador utilizando un cable cruzado)
Su Interface DMZ tambieacuten seraacute un adaptador Ethernet (eth0 eth1 o eth2) y se conectaraacute a un hub o switch Sus computadores DMZ seraacuten conectados al mismo switch o hub (nota Si tiene un uacutenico sistema DMZ puede conectar directamente el firewall al computador usando un cable cruzado)
Precaucioacuten
No conecte la interace interna y externa al mismo hub o switch exceptuando para pruebas Y estaacute corriendo Shorewall 147 o superior Cuando use estas versiones recientes puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en el archivo etcshorewallinterfaces para todas las interfaces conectadas al mismo hubswitch No se recomienda utilizar tal configuracioacuten con un firewall de produccioacuten
Para el resto de esta guiacutea asumiremos que
bull La Interface Externa es eth0bull La Interface Local es eth1bull La Interface DMZ es eth2
La cinfiguracioacuten Shorewall por omisioacuten no define el contenido de ninguna zona Para definir la configuracioacuten de arriba usando el archivo etcshorewallinterfaces dicho archivo contendriacutea
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectdmz eth2 detect
Note que la zona $FW no tiene una entrada en el archvio etcshorewallinterfaces
Edite el archivo etcshorewallinterfaces y defina las interfaces de red de su firewall asociadas con su zona Si tiene una zona disponible a traveacutes de maacutes de una interface de red simplemente incluya una entrada para cada interface y repita el nombre de zona tantas veces como haga falta con su respectiva interface de red
Ejemplo 1 Muacuteltiples Interfaces hacia una Zona
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectloc eth2 detect
Usted puede definir zonas maacutes complicadas usando el archivo etcshorewallhosts pero en la mayoriacutea de los casos ello no es necesario Vea Shorewall_and_Aliased_Interfaceshtml y Multiple_Zoneshtml para algunos ejemplos
Direccionamiento Subredes y Enrutamiento
Normalmente su ISP le asignaraacute un conjunto de direcciones IP Puacuteblicas Usted configuraraacute su interface externa de su firewall para que use una de dichas direcciones permanentemente y entonces tendraacute que decidir como usaraacute el resto de sus direcciones Antes de que contestemos esta pregunta es conveniente primero revisar los fundamentos
Si usted estaacute ampliamente familiarizado con el direccionamiento IP y el enrutamiento puede ir directo a la proacutexima seccioacuten
La siguiente discusioacuten revisa someramente el direccionamiento y el enrutamiento IP Si estaacute interesado en aprender maacutes acerca del tema le recomendaos ampliamente ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0
Direcciones IP
Las direcciones IP versioacuten 4 (IPv4) son nuacutemeros de 32 -bits La notacioacuten wxyz refiere a una direccioacuten donde el byte de orden superior tiene el valor ldquowrdquo el proacuteximo byte tiene el valor ldquoxrdquo etc Si tomamos la direccioacuten 1920214 y la expresamos en hexadecimal obtenemos
C000020E
o viacuteendolo como un entero de 32-bits
C000020E
Subredes
Usted comenzaraacute a escuchar los teacuterminos ldquored Clase Ardquo ldquored Clase B y red Clase C En los primeros diacuteas de IP las redes veniacutean en tres tamantildeos (existiacutea tambieacuten redes Clase D pero era usada de forma diferente)
Clase A - maacutescara de red 255000 size = 2 24Clase B - maacutescara de red 25525500 size = 2 16
Clase C - maacutescara de red 2552552550 size = 256
La clase de una red era determinada uniacutevocamente por el valor del byte superior de su direccioacuten tal que usted pudiera ver la direccioacuten IP e inmediatamente determinara la maacutescara asociada La maacutescara de red es un nuacutemero que cuando se aplica un Y loacutegico con la direccioacuten separa la direccioacuten de red del resto que es la direccioacuten de host Por ejemplo la direccioacuten Clase C 1920214 la direccioacuten de red es el hexadecimal C00002 y el nuacutemero de host es 0E
En la medida que internet crecioacute se hizo claro que tal particionamiento tan grueso de direcciones de 32-bits iva a ser muy limitante (iexclPreviamente a las grandes corporaciones y universidades le fueron asignadas sus propias redes clase A) Despueacutes de unos arranques en falso la teacutecnica de subredes evolucionoacute al sistema actual de redes maacutes pequentildeas la teacutecnica se le refiere como Classless InterDomain Routing (CIDR) Hoy diacutea cualquier sistema que usted probablemente use entenderaacute CIDR y las redes basadas en clases son ya algo del pasado
Una subred es un conjunto contiguo de direcciones IP tal que
1 La cantidad de direcciones en el conjunto es una potencia de 2 y2 La primera direccioacuten en el conjunto es un muacuteltiplo del tamantildeo del conjunto3 La primera direccioacuten en la subred se reserva y se le refiere como la direccioacuten de subred4 La uacutetima direccioacuten en la subred estaacute reservada como la direccioacuten de difusioacuten(broadcast) de la subred
Como puede ver por definicioacuten en cada subred de tamantildeo n hay (n - 2) direcciones utilizables (direcciones que se pueden asignar a maacutequinas) La primera y uacuteltima direccioacuten en la subred son utilizadas como direccioacuten de la subred y direccioacuten de difusioacuten respectivamente En consecuencia las subredes maacutes pequentildeas desperdician maacutes direcciones IP que las redes maacutes grandes
Ya que n es una potencia de dos faacutecilmente podemos calcular el Logaritmo-Base2 (log2) de n Para los tamantildeos maacutes comunes de subred el tamantildeo y su logaritmos base 2 son dados por la siguiente tabla
Tabla 1 Logaritmos Base-2
n log2 n (32 - log2 n)
8 3 29
16 4 28
32 5 27
64 6 26
128 7 25
256 8 24
512 9 23
1024 10 22
2048 11 21
4096 12 20
8192 13 19
16384 14 18
32768 15 17
65536 16 16
Notaraacute que la tabla arriba tambieacuten contiene una columna parar (32 - log2 n) Este nuacutemero es la Variable Length Subnet Mask (VLSM) para una red de tamantildeo n De la tabla arriba podemos derivar la siguiente que es un poco maacutes faacutecil de usar
Tabla 2 VLSM
Subnet Size VLSM Subnet Mask
8 29 255255255248
16 28 255255255240
32 27 255255255224
64 26 255255255192
128 25 255255255128
256 24 2552552550
512 23 2552552540
1024 22 2552552520
2048 21 2552552480
4096 20 2552552400
8192 19 2552552240
16384 18 2552551920
32768 17 2552551280
65536 16 25525500
2 24 8 255000
Note que la VLSM se escribe con barra (ldquordquo) -- a menudo escucharaacute de una subred de tamantildeo 64 referida como una subred ldquobarra 26rdquo y una de tamantildeo 8 referida como de ldquobarra 29rdquo
La maacutescara de subred es simplemente un nuacutemero de 32 bits con los primeros ldquoVLSMrdquo bits puestos a uno y los remanentes bits puestos a cero Por ejemplo para una subred de tamantildeo 64 la maacutescara de subred tiene los primeros 26 bits en uno
11111111111111111111111111000000 = FFFFFFC0 = FFFFFFC0 = 255255255192
La maacutescara de subred tiene la propiedad de que si se hace un Y loacutegico con una direccioacuten en la subred el resultado es la direccioacuten de la subred Igual de importante si hace un Y loacutegico de la maacutescara de subre con una direccioacuten fuera de la subred el resultado NO es la direccioacuten de la subred Como ya veremos esta propiedad de la maacutescara de subred es muy uacutetil para el enrutamiento
Para una subred cuya direccioacuten es abcd y cuyo Variable Length Subnet Mask es v denotamos la subred como ldquoabcdvrdquo usando Notacioacuten CIDR Ejemplo
Tabla 3 Subred
Subred 1010100 - 101010127
Tamantildeo Subred 128
Direccioacuten Subred 1010100
Direccioacuten Difusioacuten 101010127
Notacioacuten CIDR 101010025
Existen dos subredes degeneradas que merecen ser nombradas la subred con un miembro y la subre con 2 32 miembros
Tabla 4 32 y 0
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
Direccioacuten de Subred 1010100
Direccioacuten de Difusioacuten 101010255
Notacioacuten CIDR 101010024
Es convencioacuten asignarle la primera direccioacuten utilizable en la subred a la interface interna (1010101 en el ejemplo anterior) o la uacuteltima (101010254)
Uno de los propoacutesitos de hacer subredes es permitir a todas las computadoras en la subred entender queacute otras computadoras pueden comunicarse con ellas directamente Para comunicarse con sistemas fuera de la subre los sistemas deben enviar los paquetes a su detino final a traveacutes de un gateway (enrutador)
Sus computadoras locales (computer 1 y computer 2 en el diagrama arriba) deben ser configuradas con el default gateway a la direccioacuten IP de la interface interna del firewall
La discusioacuten a continuacioacuten repasa por encima los temas de subredes y enrutamiento Si estaacute interesado en aprender maacutes acerca del direccionamiento y el enrutamiento IP si le recomienda altamente el libro ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0 (enlace)
El resto de esta guiacutea asume que tiene su red dispuesta de esta forma
El default gateway para las computdores 1 y 2 seriacutea 101010254
Alerta
Su ISP puede que le asigne una direccioacuten RFC 1918 para su interface externa Si dicha direccioacuten estaacute en la subred 101010024 entonces tendraacute que seleccionar una subred DIFERENTE RFC 1918 para su red local
Enmascaramiento IP (SNAT)
Las direcciones reservadas por el RFC 1918 son a veces referidas como no-ruteable debido a que los enrutadores en el corazoacuten de Internet no se renviacutean los paquetes IP cuando tienen como destino una direccioacuten RFC 1918 Cuando uno de su sistemas locales (digamos computer 1) enviacutea una solicitud de conexioacuten a una maacutequina en Internet el firewall debe hacer Network Address Translation (NAT Traduccioacuten de Direccioacuten de Red) El firewall rescribe la direccioacuten de origen en el paquete para que sea la direccioacuten de la interface externa del firewall en otras palabras el
firewall hace parecer que la solicitud de conexioacuten fueacute originada en el propio firewall Esto es necesario hacerlo para la maaacutequina destino sea capaz de enrutar la respuesta de vuelta hasta el firewall (recuerde que los paquetes cuyos destinos es una direccioacuten RFC 1918 no son enrutados a traveacutes de internet para que la respuesta vuelva su origen en computer 1) Cuando el firewall recibe un paquete de respuesta rescribe la direccioacuten de destino de vuelta a 1010101 y enviacutea el paquete a computer 1
En los sistemas Linux el proceso anterior es conocido como Enmascaramiento IP pero tambieacuten veraacute el uso del teacutermino Source Network Address Translation (SNAT) Shorewall sigue la convencioacuten que usa Netfilter
bull Enmascaramiento (Masquerade) describe el caso donde se permite al sistema firewall detectar automaacuteticamente la direccioacuten de la interface externa
bull SNAT se refiere al caso donde expliacutecitamente especifica la direccioacuten origen que desea usar en los paquetes salientes
En Shorewall tanto Enmascaramiento y SNAT se configuran con entradas en el archivo etcshorewallmasq Normalmente usaraacute Enmascaramiento si su direccioacuten IP en la interface externa es dinaacutemica y SNAT en el caso de direccioacuten IP estaacutetica
Si la interface externa de su firewall es eth0 no se necesita modificar el archivo provisto con la muestra De otra forma edite etcshorewallmasq y cambie la primera columna para que refleje el nombre de su interface externa y la segunda columna el nombre de su interface interna
Si su direccioacuten IP externa es estaacutetica puede enterarla en la tercrea columna en etcshorewallmasq si desea si bien su firewall funcionaraacute bien si no lo hace Enterar su direccioacuten IP estaacutetica en la tercera columna hace que procesar los paquetes salientes sea un poco maacutes eficiente
Si estaacute usando el paquete Debian por favor revise su archivo shorewallconf para asegurarse que lo siguiente esteacute escrito correctamente si no es asiacute caacutembielo apropiadamente
bull IP_FORWARDING=On
Desviacuteo de Puerto (DNAT)
Una de sus metas puede ser correr uno o mas servidores en sus sistemas locales Ya que dichas computadoras tienen direcciones RFC-1918 no es posible a los clientes en internet conectar directamente con ellas En cambio es necesario para dichos clientes dirigir sus solicitudes de conexioacuten hacia el firewall quien rescribe la direccioacuten destino a la direccioacuten de su servidor y enviacutea el paquete al servidor Cuando su servidor responde el firewall automaacuteticamente realiza SNAT para rescribir la direccioacuten origen en la respuesta
El proceso anterior es llamado Desviacuteo de Puerto o Port Forwarding o Destination Network Address Translation (DNAT) Usted puede configurar el desviacuteo de puerto usando las reglas DNAT en el archivo etcshorewallrules
La forma general de una regla de desviacuteo de puerto simple en etcshorewallrules es
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net locltserver local ip addressgt[ltserver portgt] ltprotocolgt ltportgt
Shorewall incorpora macros para muchas de las aplicaciones populares Revise en usrshareshorewallmacro para identificar los macros disponibles en su versioacuten Los macros simplemente crean reglas DNAT suministrando el protocolo y puerto(s) como se muestra en los siguientes ejemplos
Ejemplo 1 Servidor Web
Usted estaacute corriendo un Servidor Web en computer 2 y desea desviar el puerto entrante TCP 80 a este sistema
ACTION SOURCE DEST PROTO DEST PORT(S)WebDNAT net loc1010102
Ejemplo 2 Servidor FTP
Usted estaacute corriendo un Servidor FTP en computer 1 tal que desea entonces desviar el puerto entrante TCP 21 a ese sistema
ACTION SOURCE DEST PROTO DEST PORT(S)FTPDNAT net loc1010101
Para FTP necesitaraacute adicionalmente el motor de seguimiento de conexiones y el soporte NAT en su kernel Para los kernel provistos por el vendedor esto significa que los moacutedulos ip_conntrack_ftp y ip_nat_ftp deben ser cargados Shorewall cargaraacute automaacuteticamente dichos moacutedulos si estaacuten disponibles y localizados en el lugar estandar bajo libmodulesltkernel versiongtkernelnetipv4netfilter
Un par de puntos importantes a mantener en mente son
bull Usted debe probar la regla anterior desde un cliente externe a su red local (ie no pruebe desde un explorador en los computadores 1 o 2 o en el firewall) Si desea ser capaz de acceder a su servidor web yo ftp desde adentro de su fireall usando la direccioacuten IP de su interface externa vea Shorewall FAQ 2
bull Muchos ISPs bloquean las solicitudes entrantes al puerto 80 Si tiene problemas conectaacutendose a su servidor intente seguir la siguiente regla y conectar al puerto 5000
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net loc101010280 tcp 5000
En este punto modifique etcshorewallrules para agregar cualquier regla DNAT que se requiera
Importante
Cuando pruebe las reglas DNAT como las anteriores debe realizar las pruebas desde un cliente AFUERA de su fiewall (en la zona net ) Usted no puede probar estas reglas desde la parte interior del firewall
Para tips de Resolucioacuten de Problemas con DNAT vea FAQs 1a y 1b
Domain Name Server (DNS)
Normalmente cuando usted conecta con su ISP y como parte del proceso de obtener una direccioacuten IP el resolutor Domain Name Service (DNS) del firewall seraacute automaacuteticamente configurado (eg el archivo etcresolvconf seraacute rescrito) Alternativamente su ISP puede darle la direccioacuten IP de un par de servidores de nombre DNS para que manualmente los configure como servidores de nombre primario y secundario respectivamente Sin importar la forma en coacutemo se configuran los servidores DNS en su firewall es su responsabilidad configurar el resolutor en sus sistemas internos Puede escoger uno de dos caminos
bull Configura sus sistemas internos para que usen los servidores de nombre de su ISP Si su ISP le ha suministrado las direcciones de sus servidores DNS o de otros disponibles en su sitio web usted puede configurar sus sistemas internos para que usen dichas direcciones Si dicha informacioacuten no estaacute disponible vea en el archivo etcresolvconf de su sistema firewall -- los servidores de nombre son declarados con los registros nameserver en este archivo
bull Puede configurar un Cache Servidor de Nombres en su firewall Red Hattrade tiene un RPM para el cache servidor de nombres (el RPM tambieacuten requier el RPM bind) y para los usuarios Bering hay un dnscachelrp Si toma este camino usted configuraraacute sus sistemas internos para que usen el mismo firewall como su servidor primario (o uacutenico) de nombres Usariacutea la direccioacuten IP interna de su firewall (101010254 en el ejemplo anterior) como direccioacuten del servidor de nombres Para permitir a los sistemas locales hablar con el cache servidor de nombre deberaacute abrir el puerto 53 (ambos UDP y TCP) desde la red local hacia el firewall esto lo hace agregar las siguientes reglas en etcshorewallrules
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT loc $FW
Otras Conexiones
La muestra two-interface incluye las siguientes reglas
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT $FW net
Esta regla permite el acceso DNS desde su firewall y puede quitarse si ha quitado el comentario en la liacutenea de etcshorewallpolicy que permite todas las conexiones desde el firewall hacia internet
En la regla que se muestra arriba ldquoDNSACCEPTrdquo es un ejemplo de una invocacioacuten macro Shorewall incluye una cantidad de macros (vea usrshareshorewallmacro) y usted puede agregar los suyos
Usted no tiene que usar los macros cuando codifique las reglas en etcshorewallrules Shorewall arrancaraacute ligeramente maacutes raacutepido si codifica sus reglas directamente en vez de usar macros La regla anterior tambieacuten pudo haber sido codificada asiacute
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW net udp 53ACCEPT $FW net tcp 53
En los casos donde Shorewall no incluya un macro que satisfaga sus necesidades puede ya sea definir un nuevo macro o simplemente codificar las reglas apropiadas directamente
La muestra tambieacuten incluye
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT loc $FW
Esta regla permite correr el servidor SSH en su firewall y conectarse a eacutel desde los sistemas locales
Si desea habilitar otras conexiones desde su firewall a otros sistemas el formato general usando macros es
ACTION SOURCE DEST PROTO DEST PORT(S)ltmacrogtACCEPT $FW ltdestination zonegt
El formato general cuando no se usan macros predefinidos es
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW ltdestination zonegt ltprotocolgt ltportgt
Ejemplo 3 Servidor Web en el Firewall
Usted desea correr un servidor Web en su sistema firewall
ACTION SOURCE DEST PROTO DEST PORT(S)WebACCEPT net $FWWebACCEPT loc $FW
Estas dos reglas por supuesto seriacutean un agregado a las reglas listadas arriba bajo ldquoPuede configurar un Cache Servidor de Nombres en su firewall rdquo
Si no sabe queacute puerto y protcolo usa una aplicacioacuten particular mire aquiacute
Importante
No recomendados habilitar telnet desdehacia internet porque usa texto en claro para su comunicacioacuten (incluso para el login) Si desea acceso shell para su firewall desde Internet use SSH
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT net $FW
Los usuarios Bering querraacuten agregar las siguientes dos reglas para ser compatibles con la configuracioacuten Shorewall de Jacques
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT loc $FW udp 53 Allow DNS Cache to workACCEPT loc $FW tcp 80 Allow Weblet to work
Ahora edite su archivo etcshorewallrules para agregar o eliminar otras conexiones como se necesario
Algunos Concejos a Mantener en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque enviacutee solicitudes de conexioacuten a la direccioacuten IP de la interface externa de su firewall no significa que la solicitud seraacute asociada con la interface externa o con la zona ldquonetrdquo Cualquier traacutefico que se genere desde la red local seraacute asociado con su interface local y seraacute tratado como traacutefico loc-gtfw
bull Las direcciones IP son propiedades de los sistemas no de las interfaces Es un error pensar que su firewall sea capaz de renviar paquetes soacutelo porque puede hacerle ping a la direccioacuten IP de todas las interfaces IP del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping exitoso es que el enlace entre el sistema local y el firewall funciona bien y que probablemente tenga bien configurado el default gateway del sistema local
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zonas loc poniendo una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO necesariamente siguen automaacuteticamente el camino reverso al tomado por el paquete original de solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso en su camino Este tema usualmente salta a la palestra cuando se instala un firewall Shorewallall en paralelo a un gateway existente y se intenta usar DNAT a traveacutes del Shorewall sin cambiar el default gateway en el sistema que recibe la solicitud renviada Las solicitudes
entraraacuten por el firewall Shorewall donde la direccioacuten IP destino es rescrita pero la respuesta sale sin modificacioacuten por medio del gateway antiguo
bull Shorewall no tiene nocioacuten de adentro o afuera por siacute mismo Estos conceptos se incorporan en el coacutemo se configura Shorewall
Arrancando y Deteniendo Su Firewall
El procedimiento de instalacioacuten configura su sistema para arrancar Shorewall al arrancar (boot) el sistema pero el inicio de Shorewall estaacute deshabilitado por omisioacuten en su configuracioacuten asiacute que no intente arrancar su Shorewall hasta que termine la configuracioacuten Una vez que se hay completado la configuracioacuten de su firewall debe editar su etcshorewallshorewallconf y poner STARTUP_ENABLED=Yes
Importante
Los usuarios del paquete deb deben editar etcdefaultshorewall y poner startup=1
El firewall se arranca usando el comando ldquoshorewall startrdquo y se detiene con el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado para aquellas maacutequinas que tengan una entrada en el archivo etcshorewallroutestopped Un firewall detenido debe ser reiniciado usando el comando ldquoshorewall restartrdquo Si desea eliminar totalmente todo rastro de Shorewall de su configuracioacuten Netfilter use el comando ldquoshorewall clearrdquo
Esta muestra two-interface asume que usted desea habilitar el enrutamiento desdehacia eth1 (la red local) cuando Shorewall estaacute detenido Si su red local no estaacute conectada a eth1 o si desea habilitar el acceso desdehacia otras maacutequinas cambie apropiadamente el archivo etcshorewallroutestopped
Alerta
Si usted estaacute conectado a su firewall desde internet no enviacutee el comando ldquoshorewall stoprdquo a menos que haya agregado una entrada con la direccioacuten IP desde donde se conectoacute al archivo etcshorewallroutestopped Tampoco recomendamos usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarla con el comando ldquoshorewall tryrdquo
Lectura Adicional Recomendada
Se le recomienda altamente la paaacutegina Archivo de Facilidades de Configuracioacuten Comunes -- contiene tips uacutetiles acerca de las facilidades Shorewall que hacen maacutes faacutecil la administracioacuten del firewall Shorewall
Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
Una vez que tiene su arreglo de dos interfaces funcionando el siguiente paso loacutegico es agregar una conexioacuten de red inalaacutembrica El primer paso es agergar la tarjeta de red adicional a su firewall ya sea una tarjeta inalaacutembirca o una tarjeta ethernet que conecte a un punto de acceso inalaacutembirco
Precaucioacuten
Cuando agrega una tarjeta de red eacutesta no seraacute necesariamente detectada como la siguiente interface ethernet superior Por ejemplo si tiene dos interfaces ethernet en su sistema (eth0 and eth1) y agrega una tercera tarjeta que usa el mismo manejador (driver) de alguna de las dos anteriores la tercera no necesariamente seraacute detectada como eth2 mal pudiera ser detectada como eth0 o eth1 Usted puede ya sea vivir con ello o puede intercambiar las tarjetas en los soacutecates hasta que la nueva tarjeta sea detectada como eth2
Su nuevo arreglo de red luciraacute similar a la figura siguiente
La primera cosa notable es que las computadores en su red inalaacutembrica estan en una subred diferente a los de su red cableada en la LAN En el ejemplo de arriba hemos escogido usar la red 101011024 Las computadoras 3 y 4 seriacutean configuradas con la direccioacuten IP del default gateway IP a 101011254
Segundo hemos escogido incluir la red inalaacutembrica como parte de la zona local Ya que Shorewall permite el traacutefico en-la-zona por omisioacuten el traacutefico puede fluir libremente entre la red cableada local y la red inalaacutembrica
Hay soacutelo dos cambios necesarios para nuestra configuracioacuten Shorewall
bull Se necesita agregar una entrada a etcshorewallinterfaces para la interface de red inalaacutembrica Si la interface inalaacutembrica es wlan0 la entrada puede lucir asiacute
ZONE INTERFACE BROADCAST OPTIONSloc wlan0 detect maclist
Como se muestra en la entrada anterior se recomienda usar la opcioacuten maclist para el segmento inalaacutembrico En paralelo agregue las entradas para las computadoras 3 y 4 en etcshorewallmaclist para prevenir que sus vecinos obtengan una conexioacuten gratuita a internet a sus expensas Comience por omitir esta opcioacuten cuando tenga todo funcionando entonces agregue esta opcioacuten y configure su archivo etcshorewallmaclist
bull Usted necesita agregar una entrada al archivo etcshorewallmasq para enmascarar el traacutefico desde la red inalaacutembrica hacia internet Si su interface hacia internet es eth0 y su interface inalaacutembrica es wlan0 la entrada seriacutea asiacute
INTERFACE SUBNET ADDRESSeth0 wlan0
Otra cosa a notar para poner la red de Microsofttrade a funcionar entre las redes inalaacutembrica y cableada necesitaraacute ya sea un servidor WINS o un PDC Yo personalmente uso Samba configurado como servidor WINS corriendo en mi firewall Correr un servidor WINS en el firewall requiere las reglas que se listan en documentacioacuten ShorewallSamba
Guiacutea de Configuracioacuten de Shorewall
Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
Precaucioacuten
Este artiacuteculo aplica a Shorewall 30 en adelante Si estaacute corriendo una versioacuten previa de Shorewall 300 entonces por favor vea la documentacioacuten para dicha liberacioacuten
Introduccioacuten
Esta guiacutea estaacute destinada a los usuarios que desean configurar Shorewall en entornos donde un conjunto de direcciones IP puacuteblicas deben ser manejadas Para quienes desean conocer maacutes acerca de Shorewall en otros entornos revise las Guiacuteas Raacutepidas de Shorewall Debido a las amplias diferentes posibles aplicaciones la Guiacutea le daraacute directrices y apuntaraacute hacia otros recursos si ello es necesario
Precaucioacuten
Shorewall requiere el paquete iprouteiproute2 instalado (en RedHat el paquete se llama iproute) Usted puede saber si el paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando ldquowhichrdquo para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se recomienda que primero lea la guiacutea para que se familiarice con lo que estaacute involucrado y luego vuelva hacia atraacute y comience sobre los cambios de configuracioacuten requeridos Los puntos donde se recomiendan cambios de
configuracioacuten se sentildealan con
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windows usted debe salvarlos como archivos Unix si su editor soporta dicha opcioacuten o debe ejecutar dicho archivo con dos2unix antes de usarlo con Shorewall De forma similar si copia un archivo de configuracioacuten desde su disco duro en Windows a un disco flexible debe ejecutar previamente dos2unix contra la copia antes de usarla con Shorewall
bull Enlace a versioacuten Windows de dos2unix httpwwwsimtelnetpubpd51438html bull Enlace a versioacuten Linux de dos2unix httpwwwmegalomancom7Ehanysoftwarehd2u
Conceptos de Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall para la mayoriacutea de las configuraciones soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea El esqueleto de archivos de configuracioacuten es creado durante el Proceso de Instalacioacuten de Shorewall
Alerta
Nota para los Usuarios Debian
Si instala usando un deb encontraraacute que el directorio etcshorewall estaacute vaciacuteo Esto es intencional Los archivos del esqueleto correspondientes a la liberacioacuten correspondiente pueden encotrarse en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no los modifica
En la medida que introducimos cada archivo sugerimos que revise dicho archivo en su sistema cada archivo contiene instrucciones detalladas de configuracioacuten
Shorewall ve la red donde estaacute corriendo como si estuviera compuesta de un conjunto de zonas En esta guiacutea usaremos las siguientes zonas
fw
El propio sistema firewall
net
La red puacuteblica Internet
loc
La red local privada que usa direcciones IP privadas
dmz
Una Zona Desmilitarizada que aloja servidores de acceso puacuteblico
Las zonas se definen en el archivo etcshorewallzones
Importante
El archivo etcshorewallzones incluiacutedo en la distribucioacuten estaacute vaciacuteo Usted puede crear el conjunto de zonas estandar descritas anteriormente copiando y pegando el siguiente contenido en dicho archivo
ZONE TYPE OPTIONSfw firewallnet ipv4loc ipv4dmz ipv4
Note que Shorewall reconoce al sistema firewall como su propia zona El ejemplo anterior sigue la convencioacuten usual de nombres zona firewall fw El nombre especificado para la zona firewall (fw en el ejemplo anterior) se almacena en la variable shell $FW cuando se procesa el archivo etcshorewallzones Con la excepcioacuten del nombre asignado a la zona firewall Shorewall no asocia ninguacuten significado especial a los nombes de zona Las zonas son lo que USTED hace de ellas Ello significa que no debe esperar que Shorewall haga algo especial porque esta es la zona interna o porque esta es la zona DMZ
Edite el archivo etcshorewallzones y haga los cambios necesarios
La reglas acerca de queacute traacutefico permitir y negar se expresan en teacuterminos de las zonas
bull Usted expresa la poliacutetica por omisioacuten para conexiones desde una a otra zona en el archivo etcshorewallpolicy
bull Usted define excepciones a dichas poliacuteticas en etcshorewallrules
Shorewall se construye sobre el motor de kernel Netfilter Netfilter implementa la funcioacuten de seguimiento de conexiones que permite lo que se denomina como inspeccioacuten por estado (stateful inspection) de paquetes Esta capacidad de manejar los estados permite que las reglas de firewall sean definidas en teacuterminos de conexiones en vez de paquetes Con Shorewall usted
1 Identifica la zona origen (cliente)2 Identifica la zona destino (servidor)3 Si la POLITICA de la zona cliente a la zona servidor es lo que desea para esta pareja clienteservidor no
necesita hacer nada adicional4 Si la POLITICA no es lo que desea entonces debe agregar una regla La regla se expresa en teacuterminos de la
zona del cliente y de la zona del servidor
Soacutelo porque las conexiones de un tipo particular desde la zona A hacia el firewall estaacuten permitidas y que tambieacuten estaacuten permitidas desde el firewall a la zona B NO sigifica que estas conexiones esten permitidas entre la zona A y la zona B (en otras palabras las poliacuteticas y reglas que involucran a la zona firewall no son transitivas) A cambio significa que usted puede tener un proxy corriendo en el firewall que acepta conexiones desde la zona A y luego establece conexiones separadas por siacute mismo desde el firewall hacia la zona B
Para cada solicitud de conexioacuten que entra al firewall la solicitud se chequea primero contra el archivo etcshorewallrules Si ninguna regla del archivo aplica se aplica a la solicitud de conexioacuten la primera poliacutetica en etcshorewallpolicy que corresponda con dicha solicitud despueacutes de que haya pasado por la accioacuten comuacuten apropiada (si existe alguna)
Previo a Shorewall 220 el archivo por omisioacuten etcshorewallpolicy teniacutea las siguientes poliacuteticas
SOURCE ZONE DESTINATION ZONE POLICY LOG LIMITBURST LEVELloc net ACCEPTnet all DROP infoall all REJECT info
Importante
El archivo de poliacuteticas de la versioacuten actual estaacute vaciacuteo Usted puede copiar y pegar las entradas anteriores para crear un punto de partida para luego personalizar sus poliacuteticas
Las poliacuteticas anteriores haraacuten que
1 permitiraacute todas las solicitudes de conexiones desde la red local hacia internet2 descartaraacute (ignoraraacute) todas las solicitudes de conexiones desde internet hacia su firewall o red local y se
registra un mensaje a nivel informativo (info level log vea aquiacute la descripcioacuten de los niveles de registro)3 rechaza todas las solicitudes de conexiones y registra un mensaje a nivel informativo Cuando una solicitud
se rechaza el firewall devuelve un RST (si el protocolo es TCP) o un paquete ICMP de puerto-inalcanzabe para los otros protocolos
En este punto edite su archivo etcshorewallpolicy y haga los cambios que desee
Interfaces de Red
Para el resto de esta guiacutea nos referiremos al siguiente diagrama Si bien puede que no luzca como el de su red puede usarse para ilustrar los aspectos importantes de la configuracioacuten Shorewall
En este diagrama
bull La Zona DMZ consiste de los sistemas DMZ 1 y DMZ 2 Una DMZ se usa para aislar su servidors accesibles desde internet de sus sistemas locales tal que si uno de esos servidores estaacute comprometido auacuten tendraacute el firewall entre el sistema comprometido y sus sistemas en la red local
bull La Zona Local consiste de los sistemas Local 1 Local 2 y Local 3bull Todos los sistemas desde el ISP hacia afuera componen la Zona Internet
La forma maacutes cimple de definir zonas es asociar el nombre de la zona (previamente definida en etcshorewallzones) con una interface de red Esto se hace en el archivo etcshorewallinterfaces El firewall ilustrado arriba tiene tres interfaces de red Donde la conectividad hacia Internet es hecha a traveacutes de un cable Modem o DSL la Interface Externa seraacute un adaptador Ethernet que se ecneuntra conectado al Modem (eg eth0) a menos que conecte usando Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta usando un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces desearaacute establecer CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Local seraacute un adaptador Ethernet (eth0 eth1 o eth2) y conectaraacute a un hub o switch Sus computadores locales estaraacuten conectadas al mismo switch o hub (nota Si tiene un uacutenico sistema local puede conectar directamente el firewall al computador utilizando un cable cruzado)
Su Interface DMZ tambieacuten seraacute un adaptador Ethernet (eth0 eth1 o eth2) y se conectaraacute a un hub o switch Sus computadores DMZ seraacuten conectados al mismo switch o hub (nota Si tiene un uacutenico sistema DMZ puede conectar directamente el firewall al computador usando un cable cruzado)
Precaucioacuten
No conecte la interace interna y externa al mismo hub o switch exceptuando para pruebas Y estaacute corriendo Shorewall 147 o superior Cuando use estas versiones recientes puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en el archivo etcshorewallinterfaces para todas las interfaces conectadas al mismo hubswitch No se recomienda utilizar tal configuracioacuten con un firewall de produccioacuten
Para el resto de esta guiacutea asumiremos que
bull La Interface Externa es eth0bull La Interface Local es eth1bull La Interface DMZ es eth2
La cinfiguracioacuten Shorewall por omisioacuten no define el contenido de ninguna zona Para definir la configuracioacuten de arriba usando el archivo etcshorewallinterfaces dicho archivo contendriacutea
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectdmz eth2 detect
Note que la zona $FW no tiene una entrada en el archvio etcshorewallinterfaces
Edite el archivo etcshorewallinterfaces y defina las interfaces de red de su firewall asociadas con su zona Si tiene una zona disponible a traveacutes de maacutes de una interface de red simplemente incluya una entrada para cada interface y repita el nombre de zona tantas veces como haga falta con su respectiva interface de red
Ejemplo 1 Muacuteltiples Interfaces hacia una Zona
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectloc eth2 detect
Usted puede definir zonas maacutes complicadas usando el archivo etcshorewallhosts pero en la mayoriacutea de los casos ello no es necesario Vea Shorewall_and_Aliased_Interfaceshtml y Multiple_Zoneshtml para algunos ejemplos
Direccionamiento Subredes y Enrutamiento
Normalmente su ISP le asignaraacute un conjunto de direcciones IP Puacuteblicas Usted configuraraacute su interface externa de su firewall para que use una de dichas direcciones permanentemente y entonces tendraacute que decidir como usaraacute el resto de sus direcciones Antes de que contestemos esta pregunta es conveniente primero revisar los fundamentos
Si usted estaacute ampliamente familiarizado con el direccionamiento IP y el enrutamiento puede ir directo a la proacutexima seccioacuten
La siguiente discusioacuten revisa someramente el direccionamiento y el enrutamiento IP Si estaacute interesado en aprender maacutes acerca del tema le recomendaos ampliamente ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0
Direcciones IP
Las direcciones IP versioacuten 4 (IPv4) son nuacutemeros de 32 -bits La notacioacuten wxyz refiere a una direccioacuten donde el byte de orden superior tiene el valor ldquowrdquo el proacuteximo byte tiene el valor ldquoxrdquo etc Si tomamos la direccioacuten 1920214 y la expresamos en hexadecimal obtenemos
C000020E
o viacuteendolo como un entero de 32-bits
C000020E
Subredes
Usted comenzaraacute a escuchar los teacuterminos ldquored Clase Ardquo ldquored Clase B y red Clase C En los primeros diacuteas de IP las redes veniacutean en tres tamantildeos (existiacutea tambieacuten redes Clase D pero era usada de forma diferente)
Clase A - maacutescara de red 255000 size = 2 24Clase B - maacutescara de red 25525500 size = 2 16
Clase C - maacutescara de red 2552552550 size = 256
La clase de una red era determinada uniacutevocamente por el valor del byte superior de su direccioacuten tal que usted pudiera ver la direccioacuten IP e inmediatamente determinara la maacutescara asociada La maacutescara de red es un nuacutemero que cuando se aplica un Y loacutegico con la direccioacuten separa la direccioacuten de red del resto que es la direccioacuten de host Por ejemplo la direccioacuten Clase C 1920214 la direccioacuten de red es el hexadecimal C00002 y el nuacutemero de host es 0E
En la medida que internet crecioacute se hizo claro que tal particionamiento tan grueso de direcciones de 32-bits iva a ser muy limitante (iexclPreviamente a las grandes corporaciones y universidades le fueron asignadas sus propias redes clase A) Despueacutes de unos arranques en falso la teacutecnica de subredes evolucionoacute al sistema actual de redes maacutes pequentildeas la teacutecnica se le refiere como Classless InterDomain Routing (CIDR) Hoy diacutea cualquier sistema que usted probablemente use entenderaacute CIDR y las redes basadas en clases son ya algo del pasado
Una subred es un conjunto contiguo de direcciones IP tal que
1 La cantidad de direcciones en el conjunto es una potencia de 2 y2 La primera direccioacuten en el conjunto es un muacuteltiplo del tamantildeo del conjunto3 La primera direccioacuten en la subred se reserva y se le refiere como la direccioacuten de subred4 La uacutetima direccioacuten en la subred estaacute reservada como la direccioacuten de difusioacuten(broadcast) de la subred
Como puede ver por definicioacuten en cada subred de tamantildeo n hay (n - 2) direcciones utilizables (direcciones que se pueden asignar a maacutequinas) La primera y uacuteltima direccioacuten en la subred son utilizadas como direccioacuten de la subred y direccioacuten de difusioacuten respectivamente En consecuencia las subredes maacutes pequentildeas desperdician maacutes direcciones IP que las redes maacutes grandes
Ya que n es una potencia de dos faacutecilmente podemos calcular el Logaritmo-Base2 (log2) de n Para los tamantildeos maacutes comunes de subred el tamantildeo y su logaritmos base 2 son dados por la siguiente tabla
Tabla 1 Logaritmos Base-2
n log2 n (32 - log2 n)
8 3 29
16 4 28
32 5 27
64 6 26
128 7 25
256 8 24
512 9 23
1024 10 22
2048 11 21
4096 12 20
8192 13 19
16384 14 18
32768 15 17
65536 16 16
Notaraacute que la tabla arriba tambieacuten contiene una columna parar (32 - log2 n) Este nuacutemero es la Variable Length Subnet Mask (VLSM) para una red de tamantildeo n De la tabla arriba podemos derivar la siguiente que es un poco maacutes faacutecil de usar
Tabla 2 VLSM
Subnet Size VLSM Subnet Mask
8 29 255255255248
16 28 255255255240
32 27 255255255224
64 26 255255255192
128 25 255255255128
256 24 2552552550
512 23 2552552540
1024 22 2552552520
2048 21 2552552480
4096 20 2552552400
8192 19 2552552240
16384 18 2552551920
32768 17 2552551280
65536 16 25525500
2 24 8 255000
Note que la VLSM se escribe con barra (ldquordquo) -- a menudo escucharaacute de una subred de tamantildeo 64 referida como una subred ldquobarra 26rdquo y una de tamantildeo 8 referida como de ldquobarra 29rdquo
La maacutescara de subred es simplemente un nuacutemero de 32 bits con los primeros ldquoVLSMrdquo bits puestos a uno y los remanentes bits puestos a cero Por ejemplo para una subred de tamantildeo 64 la maacutescara de subred tiene los primeros 26 bits en uno
11111111111111111111111111000000 = FFFFFFC0 = FFFFFFC0 = 255255255192
La maacutescara de subred tiene la propiedad de que si se hace un Y loacutegico con una direccioacuten en la subred el resultado es la direccioacuten de la subred Igual de importante si hace un Y loacutegico de la maacutescara de subre con una direccioacuten fuera de la subred el resultado NO es la direccioacuten de la subred Como ya veremos esta propiedad de la maacutescara de subred es muy uacutetil para el enrutamiento
Para una subred cuya direccioacuten es abcd y cuyo Variable Length Subnet Mask es v denotamos la subred como ldquoabcdvrdquo usando Notacioacuten CIDR Ejemplo
Tabla 3 Subred
Subred 1010100 - 101010127
Tamantildeo Subred 128
Direccioacuten Subred 1010100
Direccioacuten Difusioacuten 101010127
Notacioacuten CIDR 101010025
Existen dos subredes degeneradas que merecen ser nombradas la subred con un miembro y la subre con 2 32 miembros
Tabla 4 32 y 0
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
El default gateway para las computdores 1 y 2 seriacutea 101010254
Alerta
Su ISP puede que le asigne una direccioacuten RFC 1918 para su interface externa Si dicha direccioacuten estaacute en la subred 101010024 entonces tendraacute que seleccionar una subred DIFERENTE RFC 1918 para su red local
Enmascaramiento IP (SNAT)
Las direcciones reservadas por el RFC 1918 son a veces referidas como no-ruteable debido a que los enrutadores en el corazoacuten de Internet no se renviacutean los paquetes IP cuando tienen como destino una direccioacuten RFC 1918 Cuando uno de su sistemas locales (digamos computer 1) enviacutea una solicitud de conexioacuten a una maacutequina en Internet el firewall debe hacer Network Address Translation (NAT Traduccioacuten de Direccioacuten de Red) El firewall rescribe la direccioacuten de origen en el paquete para que sea la direccioacuten de la interface externa del firewall en otras palabras el
firewall hace parecer que la solicitud de conexioacuten fueacute originada en el propio firewall Esto es necesario hacerlo para la maaacutequina destino sea capaz de enrutar la respuesta de vuelta hasta el firewall (recuerde que los paquetes cuyos destinos es una direccioacuten RFC 1918 no son enrutados a traveacutes de internet para que la respuesta vuelva su origen en computer 1) Cuando el firewall recibe un paquete de respuesta rescribe la direccioacuten de destino de vuelta a 1010101 y enviacutea el paquete a computer 1
En los sistemas Linux el proceso anterior es conocido como Enmascaramiento IP pero tambieacuten veraacute el uso del teacutermino Source Network Address Translation (SNAT) Shorewall sigue la convencioacuten que usa Netfilter
bull Enmascaramiento (Masquerade) describe el caso donde se permite al sistema firewall detectar automaacuteticamente la direccioacuten de la interface externa
bull SNAT se refiere al caso donde expliacutecitamente especifica la direccioacuten origen que desea usar en los paquetes salientes
En Shorewall tanto Enmascaramiento y SNAT se configuran con entradas en el archivo etcshorewallmasq Normalmente usaraacute Enmascaramiento si su direccioacuten IP en la interface externa es dinaacutemica y SNAT en el caso de direccioacuten IP estaacutetica
Si la interface externa de su firewall es eth0 no se necesita modificar el archivo provisto con la muestra De otra forma edite etcshorewallmasq y cambie la primera columna para que refleje el nombre de su interface externa y la segunda columna el nombre de su interface interna
Si su direccioacuten IP externa es estaacutetica puede enterarla en la tercrea columna en etcshorewallmasq si desea si bien su firewall funcionaraacute bien si no lo hace Enterar su direccioacuten IP estaacutetica en la tercera columna hace que procesar los paquetes salientes sea un poco maacutes eficiente
Si estaacute usando el paquete Debian por favor revise su archivo shorewallconf para asegurarse que lo siguiente esteacute escrito correctamente si no es asiacute caacutembielo apropiadamente
bull IP_FORWARDING=On
Desviacuteo de Puerto (DNAT)
Una de sus metas puede ser correr uno o mas servidores en sus sistemas locales Ya que dichas computadoras tienen direcciones RFC-1918 no es posible a los clientes en internet conectar directamente con ellas En cambio es necesario para dichos clientes dirigir sus solicitudes de conexioacuten hacia el firewall quien rescribe la direccioacuten destino a la direccioacuten de su servidor y enviacutea el paquete al servidor Cuando su servidor responde el firewall automaacuteticamente realiza SNAT para rescribir la direccioacuten origen en la respuesta
El proceso anterior es llamado Desviacuteo de Puerto o Port Forwarding o Destination Network Address Translation (DNAT) Usted puede configurar el desviacuteo de puerto usando las reglas DNAT en el archivo etcshorewallrules
La forma general de una regla de desviacuteo de puerto simple en etcshorewallrules es
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net locltserver local ip addressgt[ltserver portgt] ltprotocolgt ltportgt
Shorewall incorpora macros para muchas de las aplicaciones populares Revise en usrshareshorewallmacro para identificar los macros disponibles en su versioacuten Los macros simplemente crean reglas DNAT suministrando el protocolo y puerto(s) como se muestra en los siguientes ejemplos
Ejemplo 1 Servidor Web
Usted estaacute corriendo un Servidor Web en computer 2 y desea desviar el puerto entrante TCP 80 a este sistema
ACTION SOURCE DEST PROTO DEST PORT(S)WebDNAT net loc1010102
Ejemplo 2 Servidor FTP
Usted estaacute corriendo un Servidor FTP en computer 1 tal que desea entonces desviar el puerto entrante TCP 21 a ese sistema
ACTION SOURCE DEST PROTO DEST PORT(S)FTPDNAT net loc1010101
Para FTP necesitaraacute adicionalmente el motor de seguimiento de conexiones y el soporte NAT en su kernel Para los kernel provistos por el vendedor esto significa que los moacutedulos ip_conntrack_ftp y ip_nat_ftp deben ser cargados Shorewall cargaraacute automaacuteticamente dichos moacutedulos si estaacuten disponibles y localizados en el lugar estandar bajo libmodulesltkernel versiongtkernelnetipv4netfilter
Un par de puntos importantes a mantener en mente son
bull Usted debe probar la regla anterior desde un cliente externe a su red local (ie no pruebe desde un explorador en los computadores 1 o 2 o en el firewall) Si desea ser capaz de acceder a su servidor web yo ftp desde adentro de su fireall usando la direccioacuten IP de su interface externa vea Shorewall FAQ 2
bull Muchos ISPs bloquean las solicitudes entrantes al puerto 80 Si tiene problemas conectaacutendose a su servidor intente seguir la siguiente regla y conectar al puerto 5000
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net loc101010280 tcp 5000
En este punto modifique etcshorewallrules para agregar cualquier regla DNAT que se requiera
Importante
Cuando pruebe las reglas DNAT como las anteriores debe realizar las pruebas desde un cliente AFUERA de su fiewall (en la zona net ) Usted no puede probar estas reglas desde la parte interior del firewall
Para tips de Resolucioacuten de Problemas con DNAT vea FAQs 1a y 1b
Domain Name Server (DNS)
Normalmente cuando usted conecta con su ISP y como parte del proceso de obtener una direccioacuten IP el resolutor Domain Name Service (DNS) del firewall seraacute automaacuteticamente configurado (eg el archivo etcresolvconf seraacute rescrito) Alternativamente su ISP puede darle la direccioacuten IP de un par de servidores de nombre DNS para que manualmente los configure como servidores de nombre primario y secundario respectivamente Sin importar la forma en coacutemo se configuran los servidores DNS en su firewall es su responsabilidad configurar el resolutor en sus sistemas internos Puede escoger uno de dos caminos
bull Configura sus sistemas internos para que usen los servidores de nombre de su ISP Si su ISP le ha suministrado las direcciones de sus servidores DNS o de otros disponibles en su sitio web usted puede configurar sus sistemas internos para que usen dichas direcciones Si dicha informacioacuten no estaacute disponible vea en el archivo etcresolvconf de su sistema firewall -- los servidores de nombre son declarados con los registros nameserver en este archivo
bull Puede configurar un Cache Servidor de Nombres en su firewall Red Hattrade tiene un RPM para el cache servidor de nombres (el RPM tambieacuten requier el RPM bind) y para los usuarios Bering hay un dnscachelrp Si toma este camino usted configuraraacute sus sistemas internos para que usen el mismo firewall como su servidor primario (o uacutenico) de nombres Usariacutea la direccioacuten IP interna de su firewall (101010254 en el ejemplo anterior) como direccioacuten del servidor de nombres Para permitir a los sistemas locales hablar con el cache servidor de nombre deberaacute abrir el puerto 53 (ambos UDP y TCP) desde la red local hacia el firewall esto lo hace agregar las siguientes reglas en etcshorewallrules
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT loc $FW
Otras Conexiones
La muestra two-interface incluye las siguientes reglas
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT $FW net
Esta regla permite el acceso DNS desde su firewall y puede quitarse si ha quitado el comentario en la liacutenea de etcshorewallpolicy que permite todas las conexiones desde el firewall hacia internet
En la regla que se muestra arriba ldquoDNSACCEPTrdquo es un ejemplo de una invocacioacuten macro Shorewall incluye una cantidad de macros (vea usrshareshorewallmacro) y usted puede agregar los suyos
Usted no tiene que usar los macros cuando codifique las reglas en etcshorewallrules Shorewall arrancaraacute ligeramente maacutes raacutepido si codifica sus reglas directamente en vez de usar macros La regla anterior tambieacuten pudo haber sido codificada asiacute
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW net udp 53ACCEPT $FW net tcp 53
En los casos donde Shorewall no incluya un macro que satisfaga sus necesidades puede ya sea definir un nuevo macro o simplemente codificar las reglas apropiadas directamente
La muestra tambieacuten incluye
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT loc $FW
Esta regla permite correr el servidor SSH en su firewall y conectarse a eacutel desde los sistemas locales
Si desea habilitar otras conexiones desde su firewall a otros sistemas el formato general usando macros es
ACTION SOURCE DEST PROTO DEST PORT(S)ltmacrogtACCEPT $FW ltdestination zonegt
El formato general cuando no se usan macros predefinidos es
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW ltdestination zonegt ltprotocolgt ltportgt
Ejemplo 3 Servidor Web en el Firewall
Usted desea correr un servidor Web en su sistema firewall
ACTION SOURCE DEST PROTO DEST PORT(S)WebACCEPT net $FWWebACCEPT loc $FW
Estas dos reglas por supuesto seriacutean un agregado a las reglas listadas arriba bajo ldquoPuede configurar un Cache Servidor de Nombres en su firewall rdquo
Si no sabe queacute puerto y protcolo usa una aplicacioacuten particular mire aquiacute
Importante
No recomendados habilitar telnet desdehacia internet porque usa texto en claro para su comunicacioacuten (incluso para el login) Si desea acceso shell para su firewall desde Internet use SSH
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT net $FW
Los usuarios Bering querraacuten agregar las siguientes dos reglas para ser compatibles con la configuracioacuten Shorewall de Jacques
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT loc $FW udp 53 Allow DNS Cache to workACCEPT loc $FW tcp 80 Allow Weblet to work
Ahora edite su archivo etcshorewallrules para agregar o eliminar otras conexiones como se necesario
Algunos Concejos a Mantener en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque enviacutee solicitudes de conexioacuten a la direccioacuten IP de la interface externa de su firewall no significa que la solicitud seraacute asociada con la interface externa o con la zona ldquonetrdquo Cualquier traacutefico que se genere desde la red local seraacute asociado con su interface local y seraacute tratado como traacutefico loc-gtfw
bull Las direcciones IP son propiedades de los sistemas no de las interfaces Es un error pensar que su firewall sea capaz de renviar paquetes soacutelo porque puede hacerle ping a la direccioacuten IP de todas las interfaces IP del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping exitoso es que el enlace entre el sistema local y el firewall funciona bien y que probablemente tenga bien configurado el default gateway del sistema local
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zonas loc poniendo una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO necesariamente siguen automaacuteticamente el camino reverso al tomado por el paquete original de solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso en su camino Este tema usualmente salta a la palestra cuando se instala un firewall Shorewallall en paralelo a un gateway existente y se intenta usar DNAT a traveacutes del Shorewall sin cambiar el default gateway en el sistema que recibe la solicitud renviada Las solicitudes
entraraacuten por el firewall Shorewall donde la direccioacuten IP destino es rescrita pero la respuesta sale sin modificacioacuten por medio del gateway antiguo
bull Shorewall no tiene nocioacuten de adentro o afuera por siacute mismo Estos conceptos se incorporan en el coacutemo se configura Shorewall
Arrancando y Deteniendo Su Firewall
El procedimiento de instalacioacuten configura su sistema para arrancar Shorewall al arrancar (boot) el sistema pero el inicio de Shorewall estaacute deshabilitado por omisioacuten en su configuracioacuten asiacute que no intente arrancar su Shorewall hasta que termine la configuracioacuten Una vez que se hay completado la configuracioacuten de su firewall debe editar su etcshorewallshorewallconf y poner STARTUP_ENABLED=Yes
Importante
Los usuarios del paquete deb deben editar etcdefaultshorewall y poner startup=1
El firewall se arranca usando el comando ldquoshorewall startrdquo y se detiene con el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado para aquellas maacutequinas que tengan una entrada en el archivo etcshorewallroutestopped Un firewall detenido debe ser reiniciado usando el comando ldquoshorewall restartrdquo Si desea eliminar totalmente todo rastro de Shorewall de su configuracioacuten Netfilter use el comando ldquoshorewall clearrdquo
Esta muestra two-interface asume que usted desea habilitar el enrutamiento desdehacia eth1 (la red local) cuando Shorewall estaacute detenido Si su red local no estaacute conectada a eth1 o si desea habilitar el acceso desdehacia otras maacutequinas cambie apropiadamente el archivo etcshorewallroutestopped
Alerta
Si usted estaacute conectado a su firewall desde internet no enviacutee el comando ldquoshorewall stoprdquo a menos que haya agregado una entrada con la direccioacuten IP desde donde se conectoacute al archivo etcshorewallroutestopped Tampoco recomendamos usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarla con el comando ldquoshorewall tryrdquo
Lectura Adicional Recomendada
Se le recomienda altamente la paaacutegina Archivo de Facilidades de Configuracioacuten Comunes -- contiene tips uacutetiles acerca de las facilidades Shorewall que hacen maacutes faacutecil la administracioacuten del firewall Shorewall
Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
Una vez que tiene su arreglo de dos interfaces funcionando el siguiente paso loacutegico es agregar una conexioacuten de red inalaacutembrica El primer paso es agergar la tarjeta de red adicional a su firewall ya sea una tarjeta inalaacutembirca o una tarjeta ethernet que conecte a un punto de acceso inalaacutembirco
Precaucioacuten
Cuando agrega una tarjeta de red eacutesta no seraacute necesariamente detectada como la siguiente interface ethernet superior Por ejemplo si tiene dos interfaces ethernet en su sistema (eth0 and eth1) y agrega una tercera tarjeta que usa el mismo manejador (driver) de alguna de las dos anteriores la tercera no necesariamente seraacute detectada como eth2 mal pudiera ser detectada como eth0 o eth1 Usted puede ya sea vivir con ello o puede intercambiar las tarjetas en los soacutecates hasta que la nueva tarjeta sea detectada como eth2
Su nuevo arreglo de red luciraacute similar a la figura siguiente
La primera cosa notable es que las computadores en su red inalaacutembrica estan en una subred diferente a los de su red cableada en la LAN En el ejemplo de arriba hemos escogido usar la red 101011024 Las computadoras 3 y 4 seriacutean configuradas con la direccioacuten IP del default gateway IP a 101011254
Segundo hemos escogido incluir la red inalaacutembrica como parte de la zona local Ya que Shorewall permite el traacutefico en-la-zona por omisioacuten el traacutefico puede fluir libremente entre la red cableada local y la red inalaacutembrica
Hay soacutelo dos cambios necesarios para nuestra configuracioacuten Shorewall
bull Se necesita agregar una entrada a etcshorewallinterfaces para la interface de red inalaacutembrica Si la interface inalaacutembrica es wlan0 la entrada puede lucir asiacute
ZONE INTERFACE BROADCAST OPTIONSloc wlan0 detect maclist
Como se muestra en la entrada anterior se recomienda usar la opcioacuten maclist para el segmento inalaacutembrico En paralelo agregue las entradas para las computadoras 3 y 4 en etcshorewallmaclist para prevenir que sus vecinos obtengan una conexioacuten gratuita a internet a sus expensas Comience por omitir esta opcioacuten cuando tenga todo funcionando entonces agregue esta opcioacuten y configure su archivo etcshorewallmaclist
bull Usted necesita agregar una entrada al archivo etcshorewallmasq para enmascarar el traacutefico desde la red inalaacutembrica hacia internet Si su interface hacia internet es eth0 y su interface inalaacutembrica es wlan0 la entrada seriacutea asiacute
INTERFACE SUBNET ADDRESSeth0 wlan0
Otra cosa a notar para poner la red de Microsofttrade a funcionar entre las redes inalaacutembrica y cableada necesitaraacute ya sea un servidor WINS o un PDC Yo personalmente uso Samba configurado como servidor WINS corriendo en mi firewall Correr un servidor WINS en el firewall requiere las reglas que se listan en documentacioacuten ShorewallSamba
Guiacutea de Configuracioacuten de Shorewall
Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
Precaucioacuten
Este artiacuteculo aplica a Shorewall 30 en adelante Si estaacute corriendo una versioacuten previa de Shorewall 300 entonces por favor vea la documentacioacuten para dicha liberacioacuten
Introduccioacuten
Esta guiacutea estaacute destinada a los usuarios que desean configurar Shorewall en entornos donde un conjunto de direcciones IP puacuteblicas deben ser manejadas Para quienes desean conocer maacutes acerca de Shorewall en otros entornos revise las Guiacuteas Raacutepidas de Shorewall Debido a las amplias diferentes posibles aplicaciones la Guiacutea le daraacute directrices y apuntaraacute hacia otros recursos si ello es necesario
Precaucioacuten
Shorewall requiere el paquete iprouteiproute2 instalado (en RedHat el paquete se llama iproute) Usted puede saber si el paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando ldquowhichrdquo para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se recomienda que primero lea la guiacutea para que se familiarice con lo que estaacute involucrado y luego vuelva hacia atraacute y comience sobre los cambios de configuracioacuten requeridos Los puntos donde se recomiendan cambios de
configuracioacuten se sentildealan con
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windows usted debe salvarlos como archivos Unix si su editor soporta dicha opcioacuten o debe ejecutar dicho archivo con dos2unix antes de usarlo con Shorewall De forma similar si copia un archivo de configuracioacuten desde su disco duro en Windows a un disco flexible debe ejecutar previamente dos2unix contra la copia antes de usarla con Shorewall
bull Enlace a versioacuten Windows de dos2unix httpwwwsimtelnetpubpd51438html bull Enlace a versioacuten Linux de dos2unix httpwwwmegalomancom7Ehanysoftwarehd2u
Conceptos de Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall para la mayoriacutea de las configuraciones soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea El esqueleto de archivos de configuracioacuten es creado durante el Proceso de Instalacioacuten de Shorewall
Alerta
Nota para los Usuarios Debian
Si instala usando un deb encontraraacute que el directorio etcshorewall estaacute vaciacuteo Esto es intencional Los archivos del esqueleto correspondientes a la liberacioacuten correspondiente pueden encotrarse en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no los modifica
En la medida que introducimos cada archivo sugerimos que revise dicho archivo en su sistema cada archivo contiene instrucciones detalladas de configuracioacuten
Shorewall ve la red donde estaacute corriendo como si estuviera compuesta de un conjunto de zonas En esta guiacutea usaremos las siguientes zonas
fw
El propio sistema firewall
net
La red puacuteblica Internet
loc
La red local privada que usa direcciones IP privadas
dmz
Una Zona Desmilitarizada que aloja servidores de acceso puacuteblico
Las zonas se definen en el archivo etcshorewallzones
Importante
El archivo etcshorewallzones incluiacutedo en la distribucioacuten estaacute vaciacuteo Usted puede crear el conjunto de zonas estandar descritas anteriormente copiando y pegando el siguiente contenido en dicho archivo
ZONE TYPE OPTIONSfw firewallnet ipv4loc ipv4dmz ipv4
Note que Shorewall reconoce al sistema firewall como su propia zona El ejemplo anterior sigue la convencioacuten usual de nombres zona firewall fw El nombre especificado para la zona firewall (fw en el ejemplo anterior) se almacena en la variable shell $FW cuando se procesa el archivo etcshorewallzones Con la excepcioacuten del nombre asignado a la zona firewall Shorewall no asocia ninguacuten significado especial a los nombes de zona Las zonas son lo que USTED hace de ellas Ello significa que no debe esperar que Shorewall haga algo especial porque esta es la zona interna o porque esta es la zona DMZ
Edite el archivo etcshorewallzones y haga los cambios necesarios
La reglas acerca de queacute traacutefico permitir y negar se expresan en teacuterminos de las zonas
bull Usted expresa la poliacutetica por omisioacuten para conexiones desde una a otra zona en el archivo etcshorewallpolicy
bull Usted define excepciones a dichas poliacuteticas en etcshorewallrules
Shorewall se construye sobre el motor de kernel Netfilter Netfilter implementa la funcioacuten de seguimiento de conexiones que permite lo que se denomina como inspeccioacuten por estado (stateful inspection) de paquetes Esta capacidad de manejar los estados permite que las reglas de firewall sean definidas en teacuterminos de conexiones en vez de paquetes Con Shorewall usted
1 Identifica la zona origen (cliente)2 Identifica la zona destino (servidor)3 Si la POLITICA de la zona cliente a la zona servidor es lo que desea para esta pareja clienteservidor no
necesita hacer nada adicional4 Si la POLITICA no es lo que desea entonces debe agregar una regla La regla se expresa en teacuterminos de la
zona del cliente y de la zona del servidor
Soacutelo porque las conexiones de un tipo particular desde la zona A hacia el firewall estaacuten permitidas y que tambieacuten estaacuten permitidas desde el firewall a la zona B NO sigifica que estas conexiones esten permitidas entre la zona A y la zona B (en otras palabras las poliacuteticas y reglas que involucran a la zona firewall no son transitivas) A cambio significa que usted puede tener un proxy corriendo en el firewall que acepta conexiones desde la zona A y luego establece conexiones separadas por siacute mismo desde el firewall hacia la zona B
Para cada solicitud de conexioacuten que entra al firewall la solicitud se chequea primero contra el archivo etcshorewallrules Si ninguna regla del archivo aplica se aplica a la solicitud de conexioacuten la primera poliacutetica en etcshorewallpolicy que corresponda con dicha solicitud despueacutes de que haya pasado por la accioacuten comuacuten apropiada (si existe alguna)
Previo a Shorewall 220 el archivo por omisioacuten etcshorewallpolicy teniacutea las siguientes poliacuteticas
SOURCE ZONE DESTINATION ZONE POLICY LOG LIMITBURST LEVELloc net ACCEPTnet all DROP infoall all REJECT info
Importante
El archivo de poliacuteticas de la versioacuten actual estaacute vaciacuteo Usted puede copiar y pegar las entradas anteriores para crear un punto de partida para luego personalizar sus poliacuteticas
Las poliacuteticas anteriores haraacuten que
1 permitiraacute todas las solicitudes de conexiones desde la red local hacia internet2 descartaraacute (ignoraraacute) todas las solicitudes de conexiones desde internet hacia su firewall o red local y se
registra un mensaje a nivel informativo (info level log vea aquiacute la descripcioacuten de los niveles de registro)3 rechaza todas las solicitudes de conexiones y registra un mensaje a nivel informativo Cuando una solicitud
se rechaza el firewall devuelve un RST (si el protocolo es TCP) o un paquete ICMP de puerto-inalcanzabe para los otros protocolos
En este punto edite su archivo etcshorewallpolicy y haga los cambios que desee
Interfaces de Red
Para el resto de esta guiacutea nos referiremos al siguiente diagrama Si bien puede que no luzca como el de su red puede usarse para ilustrar los aspectos importantes de la configuracioacuten Shorewall
En este diagrama
bull La Zona DMZ consiste de los sistemas DMZ 1 y DMZ 2 Una DMZ se usa para aislar su servidors accesibles desde internet de sus sistemas locales tal que si uno de esos servidores estaacute comprometido auacuten tendraacute el firewall entre el sistema comprometido y sus sistemas en la red local
bull La Zona Local consiste de los sistemas Local 1 Local 2 y Local 3bull Todos los sistemas desde el ISP hacia afuera componen la Zona Internet
La forma maacutes cimple de definir zonas es asociar el nombre de la zona (previamente definida en etcshorewallzones) con una interface de red Esto se hace en el archivo etcshorewallinterfaces El firewall ilustrado arriba tiene tres interfaces de red Donde la conectividad hacia Internet es hecha a traveacutes de un cable Modem o DSL la Interface Externa seraacute un adaptador Ethernet que se ecneuntra conectado al Modem (eg eth0) a menos que conecte usando Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta usando un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces desearaacute establecer CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Local seraacute un adaptador Ethernet (eth0 eth1 o eth2) y conectaraacute a un hub o switch Sus computadores locales estaraacuten conectadas al mismo switch o hub (nota Si tiene un uacutenico sistema local puede conectar directamente el firewall al computador utilizando un cable cruzado)
Su Interface DMZ tambieacuten seraacute un adaptador Ethernet (eth0 eth1 o eth2) y se conectaraacute a un hub o switch Sus computadores DMZ seraacuten conectados al mismo switch o hub (nota Si tiene un uacutenico sistema DMZ puede conectar directamente el firewall al computador usando un cable cruzado)
Precaucioacuten
No conecte la interace interna y externa al mismo hub o switch exceptuando para pruebas Y estaacute corriendo Shorewall 147 o superior Cuando use estas versiones recientes puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en el archivo etcshorewallinterfaces para todas las interfaces conectadas al mismo hubswitch No se recomienda utilizar tal configuracioacuten con un firewall de produccioacuten
Para el resto de esta guiacutea asumiremos que
bull La Interface Externa es eth0bull La Interface Local es eth1bull La Interface DMZ es eth2
La cinfiguracioacuten Shorewall por omisioacuten no define el contenido de ninguna zona Para definir la configuracioacuten de arriba usando el archivo etcshorewallinterfaces dicho archivo contendriacutea
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectdmz eth2 detect
Note que la zona $FW no tiene una entrada en el archvio etcshorewallinterfaces
Edite el archivo etcshorewallinterfaces y defina las interfaces de red de su firewall asociadas con su zona Si tiene una zona disponible a traveacutes de maacutes de una interface de red simplemente incluya una entrada para cada interface y repita el nombre de zona tantas veces como haga falta con su respectiva interface de red
Ejemplo 1 Muacuteltiples Interfaces hacia una Zona
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectloc eth2 detect
Usted puede definir zonas maacutes complicadas usando el archivo etcshorewallhosts pero en la mayoriacutea de los casos ello no es necesario Vea Shorewall_and_Aliased_Interfaceshtml y Multiple_Zoneshtml para algunos ejemplos
Direccionamiento Subredes y Enrutamiento
Normalmente su ISP le asignaraacute un conjunto de direcciones IP Puacuteblicas Usted configuraraacute su interface externa de su firewall para que use una de dichas direcciones permanentemente y entonces tendraacute que decidir como usaraacute el resto de sus direcciones Antes de que contestemos esta pregunta es conveniente primero revisar los fundamentos
Si usted estaacute ampliamente familiarizado con el direccionamiento IP y el enrutamiento puede ir directo a la proacutexima seccioacuten
La siguiente discusioacuten revisa someramente el direccionamiento y el enrutamiento IP Si estaacute interesado en aprender maacutes acerca del tema le recomendaos ampliamente ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0
Direcciones IP
Las direcciones IP versioacuten 4 (IPv4) son nuacutemeros de 32 -bits La notacioacuten wxyz refiere a una direccioacuten donde el byte de orden superior tiene el valor ldquowrdquo el proacuteximo byte tiene el valor ldquoxrdquo etc Si tomamos la direccioacuten 1920214 y la expresamos en hexadecimal obtenemos
C000020E
o viacuteendolo como un entero de 32-bits
C000020E
Subredes
Usted comenzaraacute a escuchar los teacuterminos ldquored Clase Ardquo ldquored Clase B y red Clase C En los primeros diacuteas de IP las redes veniacutean en tres tamantildeos (existiacutea tambieacuten redes Clase D pero era usada de forma diferente)
Clase A - maacutescara de red 255000 size = 2 24Clase B - maacutescara de red 25525500 size = 2 16
Clase C - maacutescara de red 2552552550 size = 256
La clase de una red era determinada uniacutevocamente por el valor del byte superior de su direccioacuten tal que usted pudiera ver la direccioacuten IP e inmediatamente determinara la maacutescara asociada La maacutescara de red es un nuacutemero que cuando se aplica un Y loacutegico con la direccioacuten separa la direccioacuten de red del resto que es la direccioacuten de host Por ejemplo la direccioacuten Clase C 1920214 la direccioacuten de red es el hexadecimal C00002 y el nuacutemero de host es 0E
En la medida que internet crecioacute se hizo claro que tal particionamiento tan grueso de direcciones de 32-bits iva a ser muy limitante (iexclPreviamente a las grandes corporaciones y universidades le fueron asignadas sus propias redes clase A) Despueacutes de unos arranques en falso la teacutecnica de subredes evolucionoacute al sistema actual de redes maacutes pequentildeas la teacutecnica se le refiere como Classless InterDomain Routing (CIDR) Hoy diacutea cualquier sistema que usted probablemente use entenderaacute CIDR y las redes basadas en clases son ya algo del pasado
Una subred es un conjunto contiguo de direcciones IP tal que
1 La cantidad de direcciones en el conjunto es una potencia de 2 y2 La primera direccioacuten en el conjunto es un muacuteltiplo del tamantildeo del conjunto3 La primera direccioacuten en la subred se reserva y se le refiere como la direccioacuten de subred4 La uacutetima direccioacuten en la subred estaacute reservada como la direccioacuten de difusioacuten(broadcast) de la subred
Como puede ver por definicioacuten en cada subred de tamantildeo n hay (n - 2) direcciones utilizables (direcciones que se pueden asignar a maacutequinas) La primera y uacuteltima direccioacuten en la subred son utilizadas como direccioacuten de la subred y direccioacuten de difusioacuten respectivamente En consecuencia las subredes maacutes pequentildeas desperdician maacutes direcciones IP que las redes maacutes grandes
Ya que n es una potencia de dos faacutecilmente podemos calcular el Logaritmo-Base2 (log2) de n Para los tamantildeos maacutes comunes de subred el tamantildeo y su logaritmos base 2 son dados por la siguiente tabla
Tabla 1 Logaritmos Base-2
n log2 n (32 - log2 n)
8 3 29
16 4 28
32 5 27
64 6 26
128 7 25
256 8 24
512 9 23
1024 10 22
2048 11 21
4096 12 20
8192 13 19
16384 14 18
32768 15 17
65536 16 16
Notaraacute que la tabla arriba tambieacuten contiene una columna parar (32 - log2 n) Este nuacutemero es la Variable Length Subnet Mask (VLSM) para una red de tamantildeo n De la tabla arriba podemos derivar la siguiente que es un poco maacutes faacutecil de usar
Tabla 2 VLSM
Subnet Size VLSM Subnet Mask
8 29 255255255248
16 28 255255255240
32 27 255255255224
64 26 255255255192
128 25 255255255128
256 24 2552552550
512 23 2552552540
1024 22 2552552520
2048 21 2552552480
4096 20 2552552400
8192 19 2552552240
16384 18 2552551920
32768 17 2552551280
65536 16 25525500
2 24 8 255000
Note que la VLSM se escribe con barra (ldquordquo) -- a menudo escucharaacute de una subred de tamantildeo 64 referida como una subred ldquobarra 26rdquo y una de tamantildeo 8 referida como de ldquobarra 29rdquo
La maacutescara de subred es simplemente un nuacutemero de 32 bits con los primeros ldquoVLSMrdquo bits puestos a uno y los remanentes bits puestos a cero Por ejemplo para una subred de tamantildeo 64 la maacutescara de subred tiene los primeros 26 bits en uno
11111111111111111111111111000000 = FFFFFFC0 = FFFFFFC0 = 255255255192
La maacutescara de subred tiene la propiedad de que si se hace un Y loacutegico con una direccioacuten en la subred el resultado es la direccioacuten de la subred Igual de importante si hace un Y loacutegico de la maacutescara de subre con una direccioacuten fuera de la subred el resultado NO es la direccioacuten de la subred Como ya veremos esta propiedad de la maacutescara de subred es muy uacutetil para el enrutamiento
Para una subred cuya direccioacuten es abcd y cuyo Variable Length Subnet Mask es v denotamos la subred como ldquoabcdvrdquo usando Notacioacuten CIDR Ejemplo
Tabla 3 Subred
Subred 1010100 - 101010127
Tamantildeo Subred 128
Direccioacuten Subred 1010100
Direccioacuten Difusioacuten 101010127
Notacioacuten CIDR 101010025
Existen dos subredes degeneradas que merecen ser nombradas la subred con un miembro y la subre con 2 32 miembros
Tabla 4 32 y 0
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
firewall hace parecer que la solicitud de conexioacuten fueacute originada en el propio firewall Esto es necesario hacerlo para la maaacutequina destino sea capaz de enrutar la respuesta de vuelta hasta el firewall (recuerde que los paquetes cuyos destinos es una direccioacuten RFC 1918 no son enrutados a traveacutes de internet para que la respuesta vuelva su origen en computer 1) Cuando el firewall recibe un paquete de respuesta rescribe la direccioacuten de destino de vuelta a 1010101 y enviacutea el paquete a computer 1
En los sistemas Linux el proceso anterior es conocido como Enmascaramiento IP pero tambieacuten veraacute el uso del teacutermino Source Network Address Translation (SNAT) Shorewall sigue la convencioacuten que usa Netfilter
bull Enmascaramiento (Masquerade) describe el caso donde se permite al sistema firewall detectar automaacuteticamente la direccioacuten de la interface externa
bull SNAT se refiere al caso donde expliacutecitamente especifica la direccioacuten origen que desea usar en los paquetes salientes
En Shorewall tanto Enmascaramiento y SNAT se configuran con entradas en el archivo etcshorewallmasq Normalmente usaraacute Enmascaramiento si su direccioacuten IP en la interface externa es dinaacutemica y SNAT en el caso de direccioacuten IP estaacutetica
Si la interface externa de su firewall es eth0 no se necesita modificar el archivo provisto con la muestra De otra forma edite etcshorewallmasq y cambie la primera columna para que refleje el nombre de su interface externa y la segunda columna el nombre de su interface interna
Si su direccioacuten IP externa es estaacutetica puede enterarla en la tercrea columna en etcshorewallmasq si desea si bien su firewall funcionaraacute bien si no lo hace Enterar su direccioacuten IP estaacutetica en la tercera columna hace que procesar los paquetes salientes sea un poco maacutes eficiente
Si estaacute usando el paquete Debian por favor revise su archivo shorewallconf para asegurarse que lo siguiente esteacute escrito correctamente si no es asiacute caacutembielo apropiadamente
bull IP_FORWARDING=On
Desviacuteo de Puerto (DNAT)
Una de sus metas puede ser correr uno o mas servidores en sus sistemas locales Ya que dichas computadoras tienen direcciones RFC-1918 no es posible a los clientes en internet conectar directamente con ellas En cambio es necesario para dichos clientes dirigir sus solicitudes de conexioacuten hacia el firewall quien rescribe la direccioacuten destino a la direccioacuten de su servidor y enviacutea el paquete al servidor Cuando su servidor responde el firewall automaacuteticamente realiza SNAT para rescribir la direccioacuten origen en la respuesta
El proceso anterior es llamado Desviacuteo de Puerto o Port Forwarding o Destination Network Address Translation (DNAT) Usted puede configurar el desviacuteo de puerto usando las reglas DNAT en el archivo etcshorewallrules
La forma general de una regla de desviacuteo de puerto simple en etcshorewallrules es
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net locltserver local ip addressgt[ltserver portgt] ltprotocolgt ltportgt
Shorewall incorpora macros para muchas de las aplicaciones populares Revise en usrshareshorewallmacro para identificar los macros disponibles en su versioacuten Los macros simplemente crean reglas DNAT suministrando el protocolo y puerto(s) como se muestra en los siguientes ejemplos
Ejemplo 1 Servidor Web
Usted estaacute corriendo un Servidor Web en computer 2 y desea desviar el puerto entrante TCP 80 a este sistema
ACTION SOURCE DEST PROTO DEST PORT(S)WebDNAT net loc1010102
Ejemplo 2 Servidor FTP
Usted estaacute corriendo un Servidor FTP en computer 1 tal que desea entonces desviar el puerto entrante TCP 21 a ese sistema
ACTION SOURCE DEST PROTO DEST PORT(S)FTPDNAT net loc1010101
Para FTP necesitaraacute adicionalmente el motor de seguimiento de conexiones y el soporte NAT en su kernel Para los kernel provistos por el vendedor esto significa que los moacutedulos ip_conntrack_ftp y ip_nat_ftp deben ser cargados Shorewall cargaraacute automaacuteticamente dichos moacutedulos si estaacuten disponibles y localizados en el lugar estandar bajo libmodulesltkernel versiongtkernelnetipv4netfilter
Un par de puntos importantes a mantener en mente son
bull Usted debe probar la regla anterior desde un cliente externe a su red local (ie no pruebe desde un explorador en los computadores 1 o 2 o en el firewall) Si desea ser capaz de acceder a su servidor web yo ftp desde adentro de su fireall usando la direccioacuten IP de su interface externa vea Shorewall FAQ 2
bull Muchos ISPs bloquean las solicitudes entrantes al puerto 80 Si tiene problemas conectaacutendose a su servidor intente seguir la siguiente regla y conectar al puerto 5000
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net loc101010280 tcp 5000
En este punto modifique etcshorewallrules para agregar cualquier regla DNAT que se requiera
Importante
Cuando pruebe las reglas DNAT como las anteriores debe realizar las pruebas desde un cliente AFUERA de su fiewall (en la zona net ) Usted no puede probar estas reglas desde la parte interior del firewall
Para tips de Resolucioacuten de Problemas con DNAT vea FAQs 1a y 1b
Domain Name Server (DNS)
Normalmente cuando usted conecta con su ISP y como parte del proceso de obtener una direccioacuten IP el resolutor Domain Name Service (DNS) del firewall seraacute automaacuteticamente configurado (eg el archivo etcresolvconf seraacute rescrito) Alternativamente su ISP puede darle la direccioacuten IP de un par de servidores de nombre DNS para que manualmente los configure como servidores de nombre primario y secundario respectivamente Sin importar la forma en coacutemo se configuran los servidores DNS en su firewall es su responsabilidad configurar el resolutor en sus sistemas internos Puede escoger uno de dos caminos
bull Configura sus sistemas internos para que usen los servidores de nombre de su ISP Si su ISP le ha suministrado las direcciones de sus servidores DNS o de otros disponibles en su sitio web usted puede configurar sus sistemas internos para que usen dichas direcciones Si dicha informacioacuten no estaacute disponible vea en el archivo etcresolvconf de su sistema firewall -- los servidores de nombre son declarados con los registros nameserver en este archivo
bull Puede configurar un Cache Servidor de Nombres en su firewall Red Hattrade tiene un RPM para el cache servidor de nombres (el RPM tambieacuten requier el RPM bind) y para los usuarios Bering hay un dnscachelrp Si toma este camino usted configuraraacute sus sistemas internos para que usen el mismo firewall como su servidor primario (o uacutenico) de nombres Usariacutea la direccioacuten IP interna de su firewall (101010254 en el ejemplo anterior) como direccioacuten del servidor de nombres Para permitir a los sistemas locales hablar con el cache servidor de nombre deberaacute abrir el puerto 53 (ambos UDP y TCP) desde la red local hacia el firewall esto lo hace agregar las siguientes reglas en etcshorewallrules
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT loc $FW
Otras Conexiones
La muestra two-interface incluye las siguientes reglas
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT $FW net
Esta regla permite el acceso DNS desde su firewall y puede quitarse si ha quitado el comentario en la liacutenea de etcshorewallpolicy que permite todas las conexiones desde el firewall hacia internet
En la regla que se muestra arriba ldquoDNSACCEPTrdquo es un ejemplo de una invocacioacuten macro Shorewall incluye una cantidad de macros (vea usrshareshorewallmacro) y usted puede agregar los suyos
Usted no tiene que usar los macros cuando codifique las reglas en etcshorewallrules Shorewall arrancaraacute ligeramente maacutes raacutepido si codifica sus reglas directamente en vez de usar macros La regla anterior tambieacuten pudo haber sido codificada asiacute
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW net udp 53ACCEPT $FW net tcp 53
En los casos donde Shorewall no incluya un macro que satisfaga sus necesidades puede ya sea definir un nuevo macro o simplemente codificar las reglas apropiadas directamente
La muestra tambieacuten incluye
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT loc $FW
Esta regla permite correr el servidor SSH en su firewall y conectarse a eacutel desde los sistemas locales
Si desea habilitar otras conexiones desde su firewall a otros sistemas el formato general usando macros es
ACTION SOURCE DEST PROTO DEST PORT(S)ltmacrogtACCEPT $FW ltdestination zonegt
El formato general cuando no se usan macros predefinidos es
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW ltdestination zonegt ltprotocolgt ltportgt
Ejemplo 3 Servidor Web en el Firewall
Usted desea correr un servidor Web en su sistema firewall
ACTION SOURCE DEST PROTO DEST PORT(S)WebACCEPT net $FWWebACCEPT loc $FW
Estas dos reglas por supuesto seriacutean un agregado a las reglas listadas arriba bajo ldquoPuede configurar un Cache Servidor de Nombres en su firewall rdquo
Si no sabe queacute puerto y protcolo usa una aplicacioacuten particular mire aquiacute
Importante
No recomendados habilitar telnet desdehacia internet porque usa texto en claro para su comunicacioacuten (incluso para el login) Si desea acceso shell para su firewall desde Internet use SSH
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT net $FW
Los usuarios Bering querraacuten agregar las siguientes dos reglas para ser compatibles con la configuracioacuten Shorewall de Jacques
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT loc $FW udp 53 Allow DNS Cache to workACCEPT loc $FW tcp 80 Allow Weblet to work
Ahora edite su archivo etcshorewallrules para agregar o eliminar otras conexiones como se necesario
Algunos Concejos a Mantener en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque enviacutee solicitudes de conexioacuten a la direccioacuten IP de la interface externa de su firewall no significa que la solicitud seraacute asociada con la interface externa o con la zona ldquonetrdquo Cualquier traacutefico que se genere desde la red local seraacute asociado con su interface local y seraacute tratado como traacutefico loc-gtfw
bull Las direcciones IP son propiedades de los sistemas no de las interfaces Es un error pensar que su firewall sea capaz de renviar paquetes soacutelo porque puede hacerle ping a la direccioacuten IP de todas las interfaces IP del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping exitoso es que el enlace entre el sistema local y el firewall funciona bien y que probablemente tenga bien configurado el default gateway del sistema local
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zonas loc poniendo una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO necesariamente siguen automaacuteticamente el camino reverso al tomado por el paquete original de solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso en su camino Este tema usualmente salta a la palestra cuando se instala un firewall Shorewallall en paralelo a un gateway existente y se intenta usar DNAT a traveacutes del Shorewall sin cambiar el default gateway en el sistema que recibe la solicitud renviada Las solicitudes
entraraacuten por el firewall Shorewall donde la direccioacuten IP destino es rescrita pero la respuesta sale sin modificacioacuten por medio del gateway antiguo
bull Shorewall no tiene nocioacuten de adentro o afuera por siacute mismo Estos conceptos se incorporan en el coacutemo se configura Shorewall
Arrancando y Deteniendo Su Firewall
El procedimiento de instalacioacuten configura su sistema para arrancar Shorewall al arrancar (boot) el sistema pero el inicio de Shorewall estaacute deshabilitado por omisioacuten en su configuracioacuten asiacute que no intente arrancar su Shorewall hasta que termine la configuracioacuten Una vez que se hay completado la configuracioacuten de su firewall debe editar su etcshorewallshorewallconf y poner STARTUP_ENABLED=Yes
Importante
Los usuarios del paquete deb deben editar etcdefaultshorewall y poner startup=1
El firewall se arranca usando el comando ldquoshorewall startrdquo y se detiene con el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado para aquellas maacutequinas que tengan una entrada en el archivo etcshorewallroutestopped Un firewall detenido debe ser reiniciado usando el comando ldquoshorewall restartrdquo Si desea eliminar totalmente todo rastro de Shorewall de su configuracioacuten Netfilter use el comando ldquoshorewall clearrdquo
Esta muestra two-interface asume que usted desea habilitar el enrutamiento desdehacia eth1 (la red local) cuando Shorewall estaacute detenido Si su red local no estaacute conectada a eth1 o si desea habilitar el acceso desdehacia otras maacutequinas cambie apropiadamente el archivo etcshorewallroutestopped
Alerta
Si usted estaacute conectado a su firewall desde internet no enviacutee el comando ldquoshorewall stoprdquo a menos que haya agregado una entrada con la direccioacuten IP desde donde se conectoacute al archivo etcshorewallroutestopped Tampoco recomendamos usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarla con el comando ldquoshorewall tryrdquo
Lectura Adicional Recomendada
Se le recomienda altamente la paaacutegina Archivo de Facilidades de Configuracioacuten Comunes -- contiene tips uacutetiles acerca de las facilidades Shorewall que hacen maacutes faacutecil la administracioacuten del firewall Shorewall
Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
Una vez que tiene su arreglo de dos interfaces funcionando el siguiente paso loacutegico es agregar una conexioacuten de red inalaacutembrica El primer paso es agergar la tarjeta de red adicional a su firewall ya sea una tarjeta inalaacutembirca o una tarjeta ethernet que conecte a un punto de acceso inalaacutembirco
Precaucioacuten
Cuando agrega una tarjeta de red eacutesta no seraacute necesariamente detectada como la siguiente interface ethernet superior Por ejemplo si tiene dos interfaces ethernet en su sistema (eth0 and eth1) y agrega una tercera tarjeta que usa el mismo manejador (driver) de alguna de las dos anteriores la tercera no necesariamente seraacute detectada como eth2 mal pudiera ser detectada como eth0 o eth1 Usted puede ya sea vivir con ello o puede intercambiar las tarjetas en los soacutecates hasta que la nueva tarjeta sea detectada como eth2
Su nuevo arreglo de red luciraacute similar a la figura siguiente
La primera cosa notable es que las computadores en su red inalaacutembrica estan en una subred diferente a los de su red cableada en la LAN En el ejemplo de arriba hemos escogido usar la red 101011024 Las computadoras 3 y 4 seriacutean configuradas con la direccioacuten IP del default gateway IP a 101011254
Segundo hemos escogido incluir la red inalaacutembrica como parte de la zona local Ya que Shorewall permite el traacutefico en-la-zona por omisioacuten el traacutefico puede fluir libremente entre la red cableada local y la red inalaacutembrica
Hay soacutelo dos cambios necesarios para nuestra configuracioacuten Shorewall
bull Se necesita agregar una entrada a etcshorewallinterfaces para la interface de red inalaacutembrica Si la interface inalaacutembrica es wlan0 la entrada puede lucir asiacute
ZONE INTERFACE BROADCAST OPTIONSloc wlan0 detect maclist
Como se muestra en la entrada anterior se recomienda usar la opcioacuten maclist para el segmento inalaacutembrico En paralelo agregue las entradas para las computadoras 3 y 4 en etcshorewallmaclist para prevenir que sus vecinos obtengan una conexioacuten gratuita a internet a sus expensas Comience por omitir esta opcioacuten cuando tenga todo funcionando entonces agregue esta opcioacuten y configure su archivo etcshorewallmaclist
bull Usted necesita agregar una entrada al archivo etcshorewallmasq para enmascarar el traacutefico desde la red inalaacutembrica hacia internet Si su interface hacia internet es eth0 y su interface inalaacutembrica es wlan0 la entrada seriacutea asiacute
INTERFACE SUBNET ADDRESSeth0 wlan0
Otra cosa a notar para poner la red de Microsofttrade a funcionar entre las redes inalaacutembrica y cableada necesitaraacute ya sea un servidor WINS o un PDC Yo personalmente uso Samba configurado como servidor WINS corriendo en mi firewall Correr un servidor WINS en el firewall requiere las reglas que se listan en documentacioacuten ShorewallSamba
Guiacutea de Configuracioacuten de Shorewall
Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
Precaucioacuten
Este artiacuteculo aplica a Shorewall 30 en adelante Si estaacute corriendo una versioacuten previa de Shorewall 300 entonces por favor vea la documentacioacuten para dicha liberacioacuten
Introduccioacuten
Esta guiacutea estaacute destinada a los usuarios que desean configurar Shorewall en entornos donde un conjunto de direcciones IP puacuteblicas deben ser manejadas Para quienes desean conocer maacutes acerca de Shorewall en otros entornos revise las Guiacuteas Raacutepidas de Shorewall Debido a las amplias diferentes posibles aplicaciones la Guiacutea le daraacute directrices y apuntaraacute hacia otros recursos si ello es necesario
Precaucioacuten
Shorewall requiere el paquete iprouteiproute2 instalado (en RedHat el paquete se llama iproute) Usted puede saber si el paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando ldquowhichrdquo para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se recomienda que primero lea la guiacutea para que se familiarice con lo que estaacute involucrado y luego vuelva hacia atraacute y comience sobre los cambios de configuracioacuten requeridos Los puntos donde se recomiendan cambios de
configuracioacuten se sentildealan con
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windows usted debe salvarlos como archivos Unix si su editor soporta dicha opcioacuten o debe ejecutar dicho archivo con dos2unix antes de usarlo con Shorewall De forma similar si copia un archivo de configuracioacuten desde su disco duro en Windows a un disco flexible debe ejecutar previamente dos2unix contra la copia antes de usarla con Shorewall
bull Enlace a versioacuten Windows de dos2unix httpwwwsimtelnetpubpd51438html bull Enlace a versioacuten Linux de dos2unix httpwwwmegalomancom7Ehanysoftwarehd2u
Conceptos de Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall para la mayoriacutea de las configuraciones soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea El esqueleto de archivos de configuracioacuten es creado durante el Proceso de Instalacioacuten de Shorewall
Alerta
Nota para los Usuarios Debian
Si instala usando un deb encontraraacute que el directorio etcshorewall estaacute vaciacuteo Esto es intencional Los archivos del esqueleto correspondientes a la liberacioacuten correspondiente pueden encotrarse en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no los modifica
En la medida que introducimos cada archivo sugerimos que revise dicho archivo en su sistema cada archivo contiene instrucciones detalladas de configuracioacuten
Shorewall ve la red donde estaacute corriendo como si estuviera compuesta de un conjunto de zonas En esta guiacutea usaremos las siguientes zonas
fw
El propio sistema firewall
net
La red puacuteblica Internet
loc
La red local privada que usa direcciones IP privadas
dmz
Una Zona Desmilitarizada que aloja servidores de acceso puacuteblico
Las zonas se definen en el archivo etcshorewallzones
Importante
El archivo etcshorewallzones incluiacutedo en la distribucioacuten estaacute vaciacuteo Usted puede crear el conjunto de zonas estandar descritas anteriormente copiando y pegando el siguiente contenido en dicho archivo
ZONE TYPE OPTIONSfw firewallnet ipv4loc ipv4dmz ipv4
Note que Shorewall reconoce al sistema firewall como su propia zona El ejemplo anterior sigue la convencioacuten usual de nombres zona firewall fw El nombre especificado para la zona firewall (fw en el ejemplo anterior) se almacena en la variable shell $FW cuando se procesa el archivo etcshorewallzones Con la excepcioacuten del nombre asignado a la zona firewall Shorewall no asocia ninguacuten significado especial a los nombes de zona Las zonas son lo que USTED hace de ellas Ello significa que no debe esperar que Shorewall haga algo especial porque esta es la zona interna o porque esta es la zona DMZ
Edite el archivo etcshorewallzones y haga los cambios necesarios
La reglas acerca de queacute traacutefico permitir y negar se expresan en teacuterminos de las zonas
bull Usted expresa la poliacutetica por omisioacuten para conexiones desde una a otra zona en el archivo etcshorewallpolicy
bull Usted define excepciones a dichas poliacuteticas en etcshorewallrules
Shorewall se construye sobre el motor de kernel Netfilter Netfilter implementa la funcioacuten de seguimiento de conexiones que permite lo que se denomina como inspeccioacuten por estado (stateful inspection) de paquetes Esta capacidad de manejar los estados permite que las reglas de firewall sean definidas en teacuterminos de conexiones en vez de paquetes Con Shorewall usted
1 Identifica la zona origen (cliente)2 Identifica la zona destino (servidor)3 Si la POLITICA de la zona cliente a la zona servidor es lo que desea para esta pareja clienteservidor no
necesita hacer nada adicional4 Si la POLITICA no es lo que desea entonces debe agregar una regla La regla se expresa en teacuterminos de la
zona del cliente y de la zona del servidor
Soacutelo porque las conexiones de un tipo particular desde la zona A hacia el firewall estaacuten permitidas y que tambieacuten estaacuten permitidas desde el firewall a la zona B NO sigifica que estas conexiones esten permitidas entre la zona A y la zona B (en otras palabras las poliacuteticas y reglas que involucran a la zona firewall no son transitivas) A cambio significa que usted puede tener un proxy corriendo en el firewall que acepta conexiones desde la zona A y luego establece conexiones separadas por siacute mismo desde el firewall hacia la zona B
Para cada solicitud de conexioacuten que entra al firewall la solicitud se chequea primero contra el archivo etcshorewallrules Si ninguna regla del archivo aplica se aplica a la solicitud de conexioacuten la primera poliacutetica en etcshorewallpolicy que corresponda con dicha solicitud despueacutes de que haya pasado por la accioacuten comuacuten apropiada (si existe alguna)
Previo a Shorewall 220 el archivo por omisioacuten etcshorewallpolicy teniacutea las siguientes poliacuteticas
SOURCE ZONE DESTINATION ZONE POLICY LOG LIMITBURST LEVELloc net ACCEPTnet all DROP infoall all REJECT info
Importante
El archivo de poliacuteticas de la versioacuten actual estaacute vaciacuteo Usted puede copiar y pegar las entradas anteriores para crear un punto de partida para luego personalizar sus poliacuteticas
Las poliacuteticas anteriores haraacuten que
1 permitiraacute todas las solicitudes de conexiones desde la red local hacia internet2 descartaraacute (ignoraraacute) todas las solicitudes de conexiones desde internet hacia su firewall o red local y se
registra un mensaje a nivel informativo (info level log vea aquiacute la descripcioacuten de los niveles de registro)3 rechaza todas las solicitudes de conexiones y registra un mensaje a nivel informativo Cuando una solicitud
se rechaza el firewall devuelve un RST (si el protocolo es TCP) o un paquete ICMP de puerto-inalcanzabe para los otros protocolos
En este punto edite su archivo etcshorewallpolicy y haga los cambios que desee
Interfaces de Red
Para el resto de esta guiacutea nos referiremos al siguiente diagrama Si bien puede que no luzca como el de su red puede usarse para ilustrar los aspectos importantes de la configuracioacuten Shorewall
En este diagrama
bull La Zona DMZ consiste de los sistemas DMZ 1 y DMZ 2 Una DMZ se usa para aislar su servidors accesibles desde internet de sus sistemas locales tal que si uno de esos servidores estaacute comprometido auacuten tendraacute el firewall entre el sistema comprometido y sus sistemas en la red local
bull La Zona Local consiste de los sistemas Local 1 Local 2 y Local 3bull Todos los sistemas desde el ISP hacia afuera componen la Zona Internet
La forma maacutes cimple de definir zonas es asociar el nombre de la zona (previamente definida en etcshorewallzones) con una interface de red Esto se hace en el archivo etcshorewallinterfaces El firewall ilustrado arriba tiene tres interfaces de red Donde la conectividad hacia Internet es hecha a traveacutes de un cable Modem o DSL la Interface Externa seraacute un adaptador Ethernet que se ecneuntra conectado al Modem (eg eth0) a menos que conecte usando Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta usando un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces desearaacute establecer CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Local seraacute un adaptador Ethernet (eth0 eth1 o eth2) y conectaraacute a un hub o switch Sus computadores locales estaraacuten conectadas al mismo switch o hub (nota Si tiene un uacutenico sistema local puede conectar directamente el firewall al computador utilizando un cable cruzado)
Su Interface DMZ tambieacuten seraacute un adaptador Ethernet (eth0 eth1 o eth2) y se conectaraacute a un hub o switch Sus computadores DMZ seraacuten conectados al mismo switch o hub (nota Si tiene un uacutenico sistema DMZ puede conectar directamente el firewall al computador usando un cable cruzado)
Precaucioacuten
No conecte la interace interna y externa al mismo hub o switch exceptuando para pruebas Y estaacute corriendo Shorewall 147 o superior Cuando use estas versiones recientes puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en el archivo etcshorewallinterfaces para todas las interfaces conectadas al mismo hubswitch No se recomienda utilizar tal configuracioacuten con un firewall de produccioacuten
Para el resto de esta guiacutea asumiremos que
bull La Interface Externa es eth0bull La Interface Local es eth1bull La Interface DMZ es eth2
La cinfiguracioacuten Shorewall por omisioacuten no define el contenido de ninguna zona Para definir la configuracioacuten de arriba usando el archivo etcshorewallinterfaces dicho archivo contendriacutea
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectdmz eth2 detect
Note que la zona $FW no tiene una entrada en el archvio etcshorewallinterfaces
Edite el archivo etcshorewallinterfaces y defina las interfaces de red de su firewall asociadas con su zona Si tiene una zona disponible a traveacutes de maacutes de una interface de red simplemente incluya una entrada para cada interface y repita el nombre de zona tantas veces como haga falta con su respectiva interface de red
Ejemplo 1 Muacuteltiples Interfaces hacia una Zona
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectloc eth2 detect
Usted puede definir zonas maacutes complicadas usando el archivo etcshorewallhosts pero en la mayoriacutea de los casos ello no es necesario Vea Shorewall_and_Aliased_Interfaceshtml y Multiple_Zoneshtml para algunos ejemplos
Direccionamiento Subredes y Enrutamiento
Normalmente su ISP le asignaraacute un conjunto de direcciones IP Puacuteblicas Usted configuraraacute su interface externa de su firewall para que use una de dichas direcciones permanentemente y entonces tendraacute que decidir como usaraacute el resto de sus direcciones Antes de que contestemos esta pregunta es conveniente primero revisar los fundamentos
Si usted estaacute ampliamente familiarizado con el direccionamiento IP y el enrutamiento puede ir directo a la proacutexima seccioacuten
La siguiente discusioacuten revisa someramente el direccionamiento y el enrutamiento IP Si estaacute interesado en aprender maacutes acerca del tema le recomendaos ampliamente ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0
Direcciones IP
Las direcciones IP versioacuten 4 (IPv4) son nuacutemeros de 32 -bits La notacioacuten wxyz refiere a una direccioacuten donde el byte de orden superior tiene el valor ldquowrdquo el proacuteximo byte tiene el valor ldquoxrdquo etc Si tomamos la direccioacuten 1920214 y la expresamos en hexadecimal obtenemos
C000020E
o viacuteendolo como un entero de 32-bits
C000020E
Subredes
Usted comenzaraacute a escuchar los teacuterminos ldquored Clase Ardquo ldquored Clase B y red Clase C En los primeros diacuteas de IP las redes veniacutean en tres tamantildeos (existiacutea tambieacuten redes Clase D pero era usada de forma diferente)
Clase A - maacutescara de red 255000 size = 2 24Clase B - maacutescara de red 25525500 size = 2 16
Clase C - maacutescara de red 2552552550 size = 256
La clase de una red era determinada uniacutevocamente por el valor del byte superior de su direccioacuten tal que usted pudiera ver la direccioacuten IP e inmediatamente determinara la maacutescara asociada La maacutescara de red es un nuacutemero que cuando se aplica un Y loacutegico con la direccioacuten separa la direccioacuten de red del resto que es la direccioacuten de host Por ejemplo la direccioacuten Clase C 1920214 la direccioacuten de red es el hexadecimal C00002 y el nuacutemero de host es 0E
En la medida que internet crecioacute se hizo claro que tal particionamiento tan grueso de direcciones de 32-bits iva a ser muy limitante (iexclPreviamente a las grandes corporaciones y universidades le fueron asignadas sus propias redes clase A) Despueacutes de unos arranques en falso la teacutecnica de subredes evolucionoacute al sistema actual de redes maacutes pequentildeas la teacutecnica se le refiere como Classless InterDomain Routing (CIDR) Hoy diacutea cualquier sistema que usted probablemente use entenderaacute CIDR y las redes basadas en clases son ya algo del pasado
Una subred es un conjunto contiguo de direcciones IP tal que
1 La cantidad de direcciones en el conjunto es una potencia de 2 y2 La primera direccioacuten en el conjunto es un muacuteltiplo del tamantildeo del conjunto3 La primera direccioacuten en la subred se reserva y se le refiere como la direccioacuten de subred4 La uacutetima direccioacuten en la subred estaacute reservada como la direccioacuten de difusioacuten(broadcast) de la subred
Como puede ver por definicioacuten en cada subred de tamantildeo n hay (n - 2) direcciones utilizables (direcciones que se pueden asignar a maacutequinas) La primera y uacuteltima direccioacuten en la subred son utilizadas como direccioacuten de la subred y direccioacuten de difusioacuten respectivamente En consecuencia las subredes maacutes pequentildeas desperdician maacutes direcciones IP que las redes maacutes grandes
Ya que n es una potencia de dos faacutecilmente podemos calcular el Logaritmo-Base2 (log2) de n Para los tamantildeos maacutes comunes de subred el tamantildeo y su logaritmos base 2 son dados por la siguiente tabla
Tabla 1 Logaritmos Base-2
n log2 n (32 - log2 n)
8 3 29
16 4 28
32 5 27
64 6 26
128 7 25
256 8 24
512 9 23
1024 10 22
2048 11 21
4096 12 20
8192 13 19
16384 14 18
32768 15 17
65536 16 16
Notaraacute que la tabla arriba tambieacuten contiene una columna parar (32 - log2 n) Este nuacutemero es la Variable Length Subnet Mask (VLSM) para una red de tamantildeo n De la tabla arriba podemos derivar la siguiente que es un poco maacutes faacutecil de usar
Tabla 2 VLSM
Subnet Size VLSM Subnet Mask
8 29 255255255248
16 28 255255255240
32 27 255255255224
64 26 255255255192
128 25 255255255128
256 24 2552552550
512 23 2552552540
1024 22 2552552520
2048 21 2552552480
4096 20 2552552400
8192 19 2552552240
16384 18 2552551920
32768 17 2552551280
65536 16 25525500
2 24 8 255000
Note que la VLSM se escribe con barra (ldquordquo) -- a menudo escucharaacute de una subred de tamantildeo 64 referida como una subred ldquobarra 26rdquo y una de tamantildeo 8 referida como de ldquobarra 29rdquo
La maacutescara de subred es simplemente un nuacutemero de 32 bits con los primeros ldquoVLSMrdquo bits puestos a uno y los remanentes bits puestos a cero Por ejemplo para una subred de tamantildeo 64 la maacutescara de subred tiene los primeros 26 bits en uno
11111111111111111111111111000000 = FFFFFFC0 = FFFFFFC0 = 255255255192
La maacutescara de subred tiene la propiedad de que si se hace un Y loacutegico con una direccioacuten en la subred el resultado es la direccioacuten de la subred Igual de importante si hace un Y loacutegico de la maacutescara de subre con una direccioacuten fuera de la subred el resultado NO es la direccioacuten de la subred Como ya veremos esta propiedad de la maacutescara de subred es muy uacutetil para el enrutamiento
Para una subred cuya direccioacuten es abcd y cuyo Variable Length Subnet Mask es v denotamos la subred como ldquoabcdvrdquo usando Notacioacuten CIDR Ejemplo
Tabla 3 Subred
Subred 1010100 - 101010127
Tamantildeo Subred 128
Direccioacuten Subred 1010100
Direccioacuten Difusioacuten 101010127
Notacioacuten CIDR 101010025
Existen dos subredes degeneradas que merecen ser nombradas la subred con un miembro y la subre con 2 32 miembros
Tabla 4 32 y 0
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
Shorewall incorpora macros para muchas de las aplicaciones populares Revise en usrshareshorewallmacro para identificar los macros disponibles en su versioacuten Los macros simplemente crean reglas DNAT suministrando el protocolo y puerto(s) como se muestra en los siguientes ejemplos
Ejemplo 1 Servidor Web
Usted estaacute corriendo un Servidor Web en computer 2 y desea desviar el puerto entrante TCP 80 a este sistema
ACTION SOURCE DEST PROTO DEST PORT(S)WebDNAT net loc1010102
Ejemplo 2 Servidor FTP
Usted estaacute corriendo un Servidor FTP en computer 1 tal que desea entonces desviar el puerto entrante TCP 21 a ese sistema
ACTION SOURCE DEST PROTO DEST PORT(S)FTPDNAT net loc1010101
Para FTP necesitaraacute adicionalmente el motor de seguimiento de conexiones y el soporte NAT en su kernel Para los kernel provistos por el vendedor esto significa que los moacutedulos ip_conntrack_ftp y ip_nat_ftp deben ser cargados Shorewall cargaraacute automaacuteticamente dichos moacutedulos si estaacuten disponibles y localizados en el lugar estandar bajo libmodulesltkernel versiongtkernelnetipv4netfilter
Un par de puntos importantes a mantener en mente son
bull Usted debe probar la regla anterior desde un cliente externe a su red local (ie no pruebe desde un explorador en los computadores 1 o 2 o en el firewall) Si desea ser capaz de acceder a su servidor web yo ftp desde adentro de su fireall usando la direccioacuten IP de su interface externa vea Shorewall FAQ 2
bull Muchos ISPs bloquean las solicitudes entrantes al puerto 80 Si tiene problemas conectaacutendose a su servidor intente seguir la siguiente regla y conectar al puerto 5000
ACTION SOURCE DEST PROTO DEST PORT(S)DNAT net loc101010280 tcp 5000
En este punto modifique etcshorewallrules para agregar cualquier regla DNAT que se requiera
Importante
Cuando pruebe las reglas DNAT como las anteriores debe realizar las pruebas desde un cliente AFUERA de su fiewall (en la zona net ) Usted no puede probar estas reglas desde la parte interior del firewall
Para tips de Resolucioacuten de Problemas con DNAT vea FAQs 1a y 1b
Domain Name Server (DNS)
Normalmente cuando usted conecta con su ISP y como parte del proceso de obtener una direccioacuten IP el resolutor Domain Name Service (DNS) del firewall seraacute automaacuteticamente configurado (eg el archivo etcresolvconf seraacute rescrito) Alternativamente su ISP puede darle la direccioacuten IP de un par de servidores de nombre DNS para que manualmente los configure como servidores de nombre primario y secundario respectivamente Sin importar la forma en coacutemo se configuran los servidores DNS en su firewall es su responsabilidad configurar el resolutor en sus sistemas internos Puede escoger uno de dos caminos
bull Configura sus sistemas internos para que usen los servidores de nombre de su ISP Si su ISP le ha suministrado las direcciones de sus servidores DNS o de otros disponibles en su sitio web usted puede configurar sus sistemas internos para que usen dichas direcciones Si dicha informacioacuten no estaacute disponible vea en el archivo etcresolvconf de su sistema firewall -- los servidores de nombre son declarados con los registros nameserver en este archivo
bull Puede configurar un Cache Servidor de Nombres en su firewall Red Hattrade tiene un RPM para el cache servidor de nombres (el RPM tambieacuten requier el RPM bind) y para los usuarios Bering hay un dnscachelrp Si toma este camino usted configuraraacute sus sistemas internos para que usen el mismo firewall como su servidor primario (o uacutenico) de nombres Usariacutea la direccioacuten IP interna de su firewall (101010254 en el ejemplo anterior) como direccioacuten del servidor de nombres Para permitir a los sistemas locales hablar con el cache servidor de nombre deberaacute abrir el puerto 53 (ambos UDP y TCP) desde la red local hacia el firewall esto lo hace agregar las siguientes reglas en etcshorewallrules
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT loc $FW
Otras Conexiones
La muestra two-interface incluye las siguientes reglas
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT $FW net
Esta regla permite el acceso DNS desde su firewall y puede quitarse si ha quitado el comentario en la liacutenea de etcshorewallpolicy que permite todas las conexiones desde el firewall hacia internet
En la regla que se muestra arriba ldquoDNSACCEPTrdquo es un ejemplo de una invocacioacuten macro Shorewall incluye una cantidad de macros (vea usrshareshorewallmacro) y usted puede agregar los suyos
Usted no tiene que usar los macros cuando codifique las reglas en etcshorewallrules Shorewall arrancaraacute ligeramente maacutes raacutepido si codifica sus reglas directamente en vez de usar macros La regla anterior tambieacuten pudo haber sido codificada asiacute
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW net udp 53ACCEPT $FW net tcp 53
En los casos donde Shorewall no incluya un macro que satisfaga sus necesidades puede ya sea definir un nuevo macro o simplemente codificar las reglas apropiadas directamente
La muestra tambieacuten incluye
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT loc $FW
Esta regla permite correr el servidor SSH en su firewall y conectarse a eacutel desde los sistemas locales
Si desea habilitar otras conexiones desde su firewall a otros sistemas el formato general usando macros es
ACTION SOURCE DEST PROTO DEST PORT(S)ltmacrogtACCEPT $FW ltdestination zonegt
El formato general cuando no se usan macros predefinidos es
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW ltdestination zonegt ltprotocolgt ltportgt
Ejemplo 3 Servidor Web en el Firewall
Usted desea correr un servidor Web en su sistema firewall
ACTION SOURCE DEST PROTO DEST PORT(S)WebACCEPT net $FWWebACCEPT loc $FW
Estas dos reglas por supuesto seriacutean un agregado a las reglas listadas arriba bajo ldquoPuede configurar un Cache Servidor de Nombres en su firewall rdquo
Si no sabe queacute puerto y protcolo usa una aplicacioacuten particular mire aquiacute
Importante
No recomendados habilitar telnet desdehacia internet porque usa texto en claro para su comunicacioacuten (incluso para el login) Si desea acceso shell para su firewall desde Internet use SSH
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT net $FW
Los usuarios Bering querraacuten agregar las siguientes dos reglas para ser compatibles con la configuracioacuten Shorewall de Jacques
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT loc $FW udp 53 Allow DNS Cache to workACCEPT loc $FW tcp 80 Allow Weblet to work
Ahora edite su archivo etcshorewallrules para agregar o eliminar otras conexiones como se necesario
Algunos Concejos a Mantener en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque enviacutee solicitudes de conexioacuten a la direccioacuten IP de la interface externa de su firewall no significa que la solicitud seraacute asociada con la interface externa o con la zona ldquonetrdquo Cualquier traacutefico que se genere desde la red local seraacute asociado con su interface local y seraacute tratado como traacutefico loc-gtfw
bull Las direcciones IP son propiedades de los sistemas no de las interfaces Es un error pensar que su firewall sea capaz de renviar paquetes soacutelo porque puede hacerle ping a la direccioacuten IP de todas las interfaces IP del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping exitoso es que el enlace entre el sistema local y el firewall funciona bien y que probablemente tenga bien configurado el default gateway del sistema local
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zonas loc poniendo una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO necesariamente siguen automaacuteticamente el camino reverso al tomado por el paquete original de solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso en su camino Este tema usualmente salta a la palestra cuando se instala un firewall Shorewallall en paralelo a un gateway existente y se intenta usar DNAT a traveacutes del Shorewall sin cambiar el default gateway en el sistema que recibe la solicitud renviada Las solicitudes
entraraacuten por el firewall Shorewall donde la direccioacuten IP destino es rescrita pero la respuesta sale sin modificacioacuten por medio del gateway antiguo
bull Shorewall no tiene nocioacuten de adentro o afuera por siacute mismo Estos conceptos se incorporan en el coacutemo se configura Shorewall
Arrancando y Deteniendo Su Firewall
El procedimiento de instalacioacuten configura su sistema para arrancar Shorewall al arrancar (boot) el sistema pero el inicio de Shorewall estaacute deshabilitado por omisioacuten en su configuracioacuten asiacute que no intente arrancar su Shorewall hasta que termine la configuracioacuten Una vez que se hay completado la configuracioacuten de su firewall debe editar su etcshorewallshorewallconf y poner STARTUP_ENABLED=Yes
Importante
Los usuarios del paquete deb deben editar etcdefaultshorewall y poner startup=1
El firewall se arranca usando el comando ldquoshorewall startrdquo y se detiene con el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado para aquellas maacutequinas que tengan una entrada en el archivo etcshorewallroutestopped Un firewall detenido debe ser reiniciado usando el comando ldquoshorewall restartrdquo Si desea eliminar totalmente todo rastro de Shorewall de su configuracioacuten Netfilter use el comando ldquoshorewall clearrdquo
Esta muestra two-interface asume que usted desea habilitar el enrutamiento desdehacia eth1 (la red local) cuando Shorewall estaacute detenido Si su red local no estaacute conectada a eth1 o si desea habilitar el acceso desdehacia otras maacutequinas cambie apropiadamente el archivo etcshorewallroutestopped
Alerta
Si usted estaacute conectado a su firewall desde internet no enviacutee el comando ldquoshorewall stoprdquo a menos que haya agregado una entrada con la direccioacuten IP desde donde se conectoacute al archivo etcshorewallroutestopped Tampoco recomendamos usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarla con el comando ldquoshorewall tryrdquo
Lectura Adicional Recomendada
Se le recomienda altamente la paaacutegina Archivo de Facilidades de Configuracioacuten Comunes -- contiene tips uacutetiles acerca de las facilidades Shorewall que hacen maacutes faacutecil la administracioacuten del firewall Shorewall
Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
Una vez que tiene su arreglo de dos interfaces funcionando el siguiente paso loacutegico es agregar una conexioacuten de red inalaacutembrica El primer paso es agergar la tarjeta de red adicional a su firewall ya sea una tarjeta inalaacutembirca o una tarjeta ethernet que conecte a un punto de acceso inalaacutembirco
Precaucioacuten
Cuando agrega una tarjeta de red eacutesta no seraacute necesariamente detectada como la siguiente interface ethernet superior Por ejemplo si tiene dos interfaces ethernet en su sistema (eth0 and eth1) y agrega una tercera tarjeta que usa el mismo manejador (driver) de alguna de las dos anteriores la tercera no necesariamente seraacute detectada como eth2 mal pudiera ser detectada como eth0 o eth1 Usted puede ya sea vivir con ello o puede intercambiar las tarjetas en los soacutecates hasta que la nueva tarjeta sea detectada como eth2
Su nuevo arreglo de red luciraacute similar a la figura siguiente
La primera cosa notable es que las computadores en su red inalaacutembrica estan en una subred diferente a los de su red cableada en la LAN En el ejemplo de arriba hemos escogido usar la red 101011024 Las computadoras 3 y 4 seriacutean configuradas con la direccioacuten IP del default gateway IP a 101011254
Segundo hemos escogido incluir la red inalaacutembrica como parte de la zona local Ya que Shorewall permite el traacutefico en-la-zona por omisioacuten el traacutefico puede fluir libremente entre la red cableada local y la red inalaacutembrica
Hay soacutelo dos cambios necesarios para nuestra configuracioacuten Shorewall
bull Se necesita agregar una entrada a etcshorewallinterfaces para la interface de red inalaacutembrica Si la interface inalaacutembrica es wlan0 la entrada puede lucir asiacute
ZONE INTERFACE BROADCAST OPTIONSloc wlan0 detect maclist
Como se muestra en la entrada anterior se recomienda usar la opcioacuten maclist para el segmento inalaacutembrico En paralelo agregue las entradas para las computadoras 3 y 4 en etcshorewallmaclist para prevenir que sus vecinos obtengan una conexioacuten gratuita a internet a sus expensas Comience por omitir esta opcioacuten cuando tenga todo funcionando entonces agregue esta opcioacuten y configure su archivo etcshorewallmaclist
bull Usted necesita agregar una entrada al archivo etcshorewallmasq para enmascarar el traacutefico desde la red inalaacutembrica hacia internet Si su interface hacia internet es eth0 y su interface inalaacutembrica es wlan0 la entrada seriacutea asiacute
INTERFACE SUBNET ADDRESSeth0 wlan0
Otra cosa a notar para poner la red de Microsofttrade a funcionar entre las redes inalaacutembrica y cableada necesitaraacute ya sea un servidor WINS o un PDC Yo personalmente uso Samba configurado como servidor WINS corriendo en mi firewall Correr un servidor WINS en el firewall requiere las reglas que se listan en documentacioacuten ShorewallSamba
Guiacutea de Configuracioacuten de Shorewall
Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
Precaucioacuten
Este artiacuteculo aplica a Shorewall 30 en adelante Si estaacute corriendo una versioacuten previa de Shorewall 300 entonces por favor vea la documentacioacuten para dicha liberacioacuten
Introduccioacuten
Esta guiacutea estaacute destinada a los usuarios que desean configurar Shorewall en entornos donde un conjunto de direcciones IP puacuteblicas deben ser manejadas Para quienes desean conocer maacutes acerca de Shorewall en otros entornos revise las Guiacuteas Raacutepidas de Shorewall Debido a las amplias diferentes posibles aplicaciones la Guiacutea le daraacute directrices y apuntaraacute hacia otros recursos si ello es necesario
Precaucioacuten
Shorewall requiere el paquete iprouteiproute2 instalado (en RedHat el paquete se llama iproute) Usted puede saber si el paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando ldquowhichrdquo para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se recomienda que primero lea la guiacutea para que se familiarice con lo que estaacute involucrado y luego vuelva hacia atraacute y comience sobre los cambios de configuracioacuten requeridos Los puntos donde se recomiendan cambios de
configuracioacuten se sentildealan con
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windows usted debe salvarlos como archivos Unix si su editor soporta dicha opcioacuten o debe ejecutar dicho archivo con dos2unix antes de usarlo con Shorewall De forma similar si copia un archivo de configuracioacuten desde su disco duro en Windows a un disco flexible debe ejecutar previamente dos2unix contra la copia antes de usarla con Shorewall
bull Enlace a versioacuten Windows de dos2unix httpwwwsimtelnetpubpd51438html bull Enlace a versioacuten Linux de dos2unix httpwwwmegalomancom7Ehanysoftwarehd2u
Conceptos de Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall para la mayoriacutea de las configuraciones soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea El esqueleto de archivos de configuracioacuten es creado durante el Proceso de Instalacioacuten de Shorewall
Alerta
Nota para los Usuarios Debian
Si instala usando un deb encontraraacute que el directorio etcshorewall estaacute vaciacuteo Esto es intencional Los archivos del esqueleto correspondientes a la liberacioacuten correspondiente pueden encotrarse en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no los modifica
En la medida que introducimos cada archivo sugerimos que revise dicho archivo en su sistema cada archivo contiene instrucciones detalladas de configuracioacuten
Shorewall ve la red donde estaacute corriendo como si estuviera compuesta de un conjunto de zonas En esta guiacutea usaremos las siguientes zonas
fw
El propio sistema firewall
net
La red puacuteblica Internet
loc
La red local privada que usa direcciones IP privadas
dmz
Una Zona Desmilitarizada que aloja servidores de acceso puacuteblico
Las zonas se definen en el archivo etcshorewallzones
Importante
El archivo etcshorewallzones incluiacutedo en la distribucioacuten estaacute vaciacuteo Usted puede crear el conjunto de zonas estandar descritas anteriormente copiando y pegando el siguiente contenido en dicho archivo
ZONE TYPE OPTIONSfw firewallnet ipv4loc ipv4dmz ipv4
Note que Shorewall reconoce al sistema firewall como su propia zona El ejemplo anterior sigue la convencioacuten usual de nombres zona firewall fw El nombre especificado para la zona firewall (fw en el ejemplo anterior) se almacena en la variable shell $FW cuando se procesa el archivo etcshorewallzones Con la excepcioacuten del nombre asignado a la zona firewall Shorewall no asocia ninguacuten significado especial a los nombes de zona Las zonas son lo que USTED hace de ellas Ello significa que no debe esperar que Shorewall haga algo especial porque esta es la zona interna o porque esta es la zona DMZ
Edite el archivo etcshorewallzones y haga los cambios necesarios
La reglas acerca de queacute traacutefico permitir y negar se expresan en teacuterminos de las zonas
bull Usted expresa la poliacutetica por omisioacuten para conexiones desde una a otra zona en el archivo etcshorewallpolicy
bull Usted define excepciones a dichas poliacuteticas en etcshorewallrules
Shorewall se construye sobre el motor de kernel Netfilter Netfilter implementa la funcioacuten de seguimiento de conexiones que permite lo que se denomina como inspeccioacuten por estado (stateful inspection) de paquetes Esta capacidad de manejar los estados permite que las reglas de firewall sean definidas en teacuterminos de conexiones en vez de paquetes Con Shorewall usted
1 Identifica la zona origen (cliente)2 Identifica la zona destino (servidor)3 Si la POLITICA de la zona cliente a la zona servidor es lo que desea para esta pareja clienteservidor no
necesita hacer nada adicional4 Si la POLITICA no es lo que desea entonces debe agregar una regla La regla se expresa en teacuterminos de la
zona del cliente y de la zona del servidor
Soacutelo porque las conexiones de un tipo particular desde la zona A hacia el firewall estaacuten permitidas y que tambieacuten estaacuten permitidas desde el firewall a la zona B NO sigifica que estas conexiones esten permitidas entre la zona A y la zona B (en otras palabras las poliacuteticas y reglas que involucran a la zona firewall no son transitivas) A cambio significa que usted puede tener un proxy corriendo en el firewall que acepta conexiones desde la zona A y luego establece conexiones separadas por siacute mismo desde el firewall hacia la zona B
Para cada solicitud de conexioacuten que entra al firewall la solicitud se chequea primero contra el archivo etcshorewallrules Si ninguna regla del archivo aplica se aplica a la solicitud de conexioacuten la primera poliacutetica en etcshorewallpolicy que corresponda con dicha solicitud despueacutes de que haya pasado por la accioacuten comuacuten apropiada (si existe alguna)
Previo a Shorewall 220 el archivo por omisioacuten etcshorewallpolicy teniacutea las siguientes poliacuteticas
SOURCE ZONE DESTINATION ZONE POLICY LOG LIMITBURST LEVELloc net ACCEPTnet all DROP infoall all REJECT info
Importante
El archivo de poliacuteticas de la versioacuten actual estaacute vaciacuteo Usted puede copiar y pegar las entradas anteriores para crear un punto de partida para luego personalizar sus poliacuteticas
Las poliacuteticas anteriores haraacuten que
1 permitiraacute todas las solicitudes de conexiones desde la red local hacia internet2 descartaraacute (ignoraraacute) todas las solicitudes de conexiones desde internet hacia su firewall o red local y se
registra un mensaje a nivel informativo (info level log vea aquiacute la descripcioacuten de los niveles de registro)3 rechaza todas las solicitudes de conexiones y registra un mensaje a nivel informativo Cuando una solicitud
se rechaza el firewall devuelve un RST (si el protocolo es TCP) o un paquete ICMP de puerto-inalcanzabe para los otros protocolos
En este punto edite su archivo etcshorewallpolicy y haga los cambios que desee
Interfaces de Red
Para el resto de esta guiacutea nos referiremos al siguiente diagrama Si bien puede que no luzca como el de su red puede usarse para ilustrar los aspectos importantes de la configuracioacuten Shorewall
En este diagrama
bull La Zona DMZ consiste de los sistemas DMZ 1 y DMZ 2 Una DMZ se usa para aislar su servidors accesibles desde internet de sus sistemas locales tal que si uno de esos servidores estaacute comprometido auacuten tendraacute el firewall entre el sistema comprometido y sus sistemas en la red local
bull La Zona Local consiste de los sistemas Local 1 Local 2 y Local 3bull Todos los sistemas desde el ISP hacia afuera componen la Zona Internet
La forma maacutes cimple de definir zonas es asociar el nombre de la zona (previamente definida en etcshorewallzones) con una interface de red Esto se hace en el archivo etcshorewallinterfaces El firewall ilustrado arriba tiene tres interfaces de red Donde la conectividad hacia Internet es hecha a traveacutes de un cable Modem o DSL la Interface Externa seraacute un adaptador Ethernet que se ecneuntra conectado al Modem (eg eth0) a menos que conecte usando Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta usando un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces desearaacute establecer CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Local seraacute un adaptador Ethernet (eth0 eth1 o eth2) y conectaraacute a un hub o switch Sus computadores locales estaraacuten conectadas al mismo switch o hub (nota Si tiene un uacutenico sistema local puede conectar directamente el firewall al computador utilizando un cable cruzado)
Su Interface DMZ tambieacuten seraacute un adaptador Ethernet (eth0 eth1 o eth2) y se conectaraacute a un hub o switch Sus computadores DMZ seraacuten conectados al mismo switch o hub (nota Si tiene un uacutenico sistema DMZ puede conectar directamente el firewall al computador usando un cable cruzado)
Precaucioacuten
No conecte la interace interna y externa al mismo hub o switch exceptuando para pruebas Y estaacute corriendo Shorewall 147 o superior Cuando use estas versiones recientes puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en el archivo etcshorewallinterfaces para todas las interfaces conectadas al mismo hubswitch No se recomienda utilizar tal configuracioacuten con un firewall de produccioacuten
Para el resto de esta guiacutea asumiremos que
bull La Interface Externa es eth0bull La Interface Local es eth1bull La Interface DMZ es eth2
La cinfiguracioacuten Shorewall por omisioacuten no define el contenido de ninguna zona Para definir la configuracioacuten de arriba usando el archivo etcshorewallinterfaces dicho archivo contendriacutea
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectdmz eth2 detect
Note que la zona $FW no tiene una entrada en el archvio etcshorewallinterfaces
Edite el archivo etcshorewallinterfaces y defina las interfaces de red de su firewall asociadas con su zona Si tiene una zona disponible a traveacutes de maacutes de una interface de red simplemente incluya una entrada para cada interface y repita el nombre de zona tantas veces como haga falta con su respectiva interface de red
Ejemplo 1 Muacuteltiples Interfaces hacia una Zona
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectloc eth2 detect
Usted puede definir zonas maacutes complicadas usando el archivo etcshorewallhosts pero en la mayoriacutea de los casos ello no es necesario Vea Shorewall_and_Aliased_Interfaceshtml y Multiple_Zoneshtml para algunos ejemplos
Direccionamiento Subredes y Enrutamiento
Normalmente su ISP le asignaraacute un conjunto de direcciones IP Puacuteblicas Usted configuraraacute su interface externa de su firewall para que use una de dichas direcciones permanentemente y entonces tendraacute que decidir como usaraacute el resto de sus direcciones Antes de que contestemos esta pregunta es conveniente primero revisar los fundamentos
Si usted estaacute ampliamente familiarizado con el direccionamiento IP y el enrutamiento puede ir directo a la proacutexima seccioacuten
La siguiente discusioacuten revisa someramente el direccionamiento y el enrutamiento IP Si estaacute interesado en aprender maacutes acerca del tema le recomendaos ampliamente ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0
Direcciones IP
Las direcciones IP versioacuten 4 (IPv4) son nuacutemeros de 32 -bits La notacioacuten wxyz refiere a una direccioacuten donde el byte de orden superior tiene el valor ldquowrdquo el proacuteximo byte tiene el valor ldquoxrdquo etc Si tomamos la direccioacuten 1920214 y la expresamos en hexadecimal obtenemos
C000020E
o viacuteendolo como un entero de 32-bits
C000020E
Subredes
Usted comenzaraacute a escuchar los teacuterminos ldquored Clase Ardquo ldquored Clase B y red Clase C En los primeros diacuteas de IP las redes veniacutean en tres tamantildeos (existiacutea tambieacuten redes Clase D pero era usada de forma diferente)
Clase A - maacutescara de red 255000 size = 2 24Clase B - maacutescara de red 25525500 size = 2 16
Clase C - maacutescara de red 2552552550 size = 256
La clase de una red era determinada uniacutevocamente por el valor del byte superior de su direccioacuten tal que usted pudiera ver la direccioacuten IP e inmediatamente determinara la maacutescara asociada La maacutescara de red es un nuacutemero que cuando se aplica un Y loacutegico con la direccioacuten separa la direccioacuten de red del resto que es la direccioacuten de host Por ejemplo la direccioacuten Clase C 1920214 la direccioacuten de red es el hexadecimal C00002 y el nuacutemero de host es 0E
En la medida que internet crecioacute se hizo claro que tal particionamiento tan grueso de direcciones de 32-bits iva a ser muy limitante (iexclPreviamente a las grandes corporaciones y universidades le fueron asignadas sus propias redes clase A) Despueacutes de unos arranques en falso la teacutecnica de subredes evolucionoacute al sistema actual de redes maacutes pequentildeas la teacutecnica se le refiere como Classless InterDomain Routing (CIDR) Hoy diacutea cualquier sistema que usted probablemente use entenderaacute CIDR y las redes basadas en clases son ya algo del pasado
Una subred es un conjunto contiguo de direcciones IP tal que
1 La cantidad de direcciones en el conjunto es una potencia de 2 y2 La primera direccioacuten en el conjunto es un muacuteltiplo del tamantildeo del conjunto3 La primera direccioacuten en la subred se reserva y se le refiere como la direccioacuten de subred4 La uacutetima direccioacuten en la subred estaacute reservada como la direccioacuten de difusioacuten(broadcast) de la subred
Como puede ver por definicioacuten en cada subred de tamantildeo n hay (n - 2) direcciones utilizables (direcciones que se pueden asignar a maacutequinas) La primera y uacuteltima direccioacuten en la subred son utilizadas como direccioacuten de la subred y direccioacuten de difusioacuten respectivamente En consecuencia las subredes maacutes pequentildeas desperdician maacutes direcciones IP que las redes maacutes grandes
Ya que n es una potencia de dos faacutecilmente podemos calcular el Logaritmo-Base2 (log2) de n Para los tamantildeos maacutes comunes de subred el tamantildeo y su logaritmos base 2 son dados por la siguiente tabla
Tabla 1 Logaritmos Base-2
n log2 n (32 - log2 n)
8 3 29
16 4 28
32 5 27
64 6 26
128 7 25
256 8 24
512 9 23
1024 10 22
2048 11 21
4096 12 20
8192 13 19
16384 14 18
32768 15 17
65536 16 16
Notaraacute que la tabla arriba tambieacuten contiene una columna parar (32 - log2 n) Este nuacutemero es la Variable Length Subnet Mask (VLSM) para una red de tamantildeo n De la tabla arriba podemos derivar la siguiente que es un poco maacutes faacutecil de usar
Tabla 2 VLSM
Subnet Size VLSM Subnet Mask
8 29 255255255248
16 28 255255255240
32 27 255255255224
64 26 255255255192
128 25 255255255128
256 24 2552552550
512 23 2552552540
1024 22 2552552520
2048 21 2552552480
4096 20 2552552400
8192 19 2552552240
16384 18 2552551920
32768 17 2552551280
65536 16 25525500
2 24 8 255000
Note que la VLSM se escribe con barra (ldquordquo) -- a menudo escucharaacute de una subred de tamantildeo 64 referida como una subred ldquobarra 26rdquo y una de tamantildeo 8 referida como de ldquobarra 29rdquo
La maacutescara de subred es simplemente un nuacutemero de 32 bits con los primeros ldquoVLSMrdquo bits puestos a uno y los remanentes bits puestos a cero Por ejemplo para una subred de tamantildeo 64 la maacutescara de subred tiene los primeros 26 bits en uno
11111111111111111111111111000000 = FFFFFFC0 = FFFFFFC0 = 255255255192
La maacutescara de subred tiene la propiedad de que si se hace un Y loacutegico con una direccioacuten en la subred el resultado es la direccioacuten de la subred Igual de importante si hace un Y loacutegico de la maacutescara de subre con una direccioacuten fuera de la subred el resultado NO es la direccioacuten de la subred Como ya veremos esta propiedad de la maacutescara de subred es muy uacutetil para el enrutamiento
Para una subred cuya direccioacuten es abcd y cuyo Variable Length Subnet Mask es v denotamos la subred como ldquoabcdvrdquo usando Notacioacuten CIDR Ejemplo
Tabla 3 Subred
Subred 1010100 - 101010127
Tamantildeo Subred 128
Direccioacuten Subred 1010100
Direccioacuten Difusioacuten 101010127
Notacioacuten CIDR 101010025
Existen dos subredes degeneradas que merecen ser nombradas la subred con un miembro y la subre con 2 32 miembros
Tabla 4 32 y 0
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
bull Configura sus sistemas internos para que usen los servidores de nombre de su ISP Si su ISP le ha suministrado las direcciones de sus servidores DNS o de otros disponibles en su sitio web usted puede configurar sus sistemas internos para que usen dichas direcciones Si dicha informacioacuten no estaacute disponible vea en el archivo etcresolvconf de su sistema firewall -- los servidores de nombre son declarados con los registros nameserver en este archivo
bull Puede configurar un Cache Servidor de Nombres en su firewall Red Hattrade tiene un RPM para el cache servidor de nombres (el RPM tambieacuten requier el RPM bind) y para los usuarios Bering hay un dnscachelrp Si toma este camino usted configuraraacute sus sistemas internos para que usen el mismo firewall como su servidor primario (o uacutenico) de nombres Usariacutea la direccioacuten IP interna de su firewall (101010254 en el ejemplo anterior) como direccioacuten del servidor de nombres Para permitir a los sistemas locales hablar con el cache servidor de nombre deberaacute abrir el puerto 53 (ambos UDP y TCP) desde la red local hacia el firewall esto lo hace agregar las siguientes reglas en etcshorewallrules
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT loc $FW
Otras Conexiones
La muestra two-interface incluye las siguientes reglas
ACTION SOURCE DEST PROTO DEST PORT(S)DNSACCEPT $FW net
Esta regla permite el acceso DNS desde su firewall y puede quitarse si ha quitado el comentario en la liacutenea de etcshorewallpolicy que permite todas las conexiones desde el firewall hacia internet
En la regla que se muestra arriba ldquoDNSACCEPTrdquo es un ejemplo de una invocacioacuten macro Shorewall incluye una cantidad de macros (vea usrshareshorewallmacro) y usted puede agregar los suyos
Usted no tiene que usar los macros cuando codifique las reglas en etcshorewallrules Shorewall arrancaraacute ligeramente maacutes raacutepido si codifica sus reglas directamente en vez de usar macros La regla anterior tambieacuten pudo haber sido codificada asiacute
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW net udp 53ACCEPT $FW net tcp 53
En los casos donde Shorewall no incluya un macro que satisfaga sus necesidades puede ya sea definir un nuevo macro o simplemente codificar las reglas apropiadas directamente
La muestra tambieacuten incluye
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT loc $FW
Esta regla permite correr el servidor SSH en su firewall y conectarse a eacutel desde los sistemas locales
Si desea habilitar otras conexiones desde su firewall a otros sistemas el formato general usando macros es
ACTION SOURCE DEST PROTO DEST PORT(S)ltmacrogtACCEPT $FW ltdestination zonegt
El formato general cuando no se usan macros predefinidos es
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT $FW ltdestination zonegt ltprotocolgt ltportgt
Ejemplo 3 Servidor Web en el Firewall
Usted desea correr un servidor Web en su sistema firewall
ACTION SOURCE DEST PROTO DEST PORT(S)WebACCEPT net $FWWebACCEPT loc $FW
Estas dos reglas por supuesto seriacutean un agregado a las reglas listadas arriba bajo ldquoPuede configurar un Cache Servidor de Nombres en su firewall rdquo
Si no sabe queacute puerto y protcolo usa una aplicacioacuten particular mire aquiacute
Importante
No recomendados habilitar telnet desdehacia internet porque usa texto en claro para su comunicacioacuten (incluso para el login) Si desea acceso shell para su firewall desde Internet use SSH
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT net $FW
Los usuarios Bering querraacuten agregar las siguientes dos reglas para ser compatibles con la configuracioacuten Shorewall de Jacques
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT loc $FW udp 53 Allow DNS Cache to workACCEPT loc $FW tcp 80 Allow Weblet to work
Ahora edite su archivo etcshorewallrules para agregar o eliminar otras conexiones como se necesario
Algunos Concejos a Mantener en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque enviacutee solicitudes de conexioacuten a la direccioacuten IP de la interface externa de su firewall no significa que la solicitud seraacute asociada con la interface externa o con la zona ldquonetrdquo Cualquier traacutefico que se genere desde la red local seraacute asociado con su interface local y seraacute tratado como traacutefico loc-gtfw
bull Las direcciones IP son propiedades de los sistemas no de las interfaces Es un error pensar que su firewall sea capaz de renviar paquetes soacutelo porque puede hacerle ping a la direccioacuten IP de todas las interfaces IP del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping exitoso es que el enlace entre el sistema local y el firewall funciona bien y que probablemente tenga bien configurado el default gateway del sistema local
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zonas loc poniendo una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO necesariamente siguen automaacuteticamente el camino reverso al tomado por el paquete original de solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso en su camino Este tema usualmente salta a la palestra cuando se instala un firewall Shorewallall en paralelo a un gateway existente y se intenta usar DNAT a traveacutes del Shorewall sin cambiar el default gateway en el sistema que recibe la solicitud renviada Las solicitudes
entraraacuten por el firewall Shorewall donde la direccioacuten IP destino es rescrita pero la respuesta sale sin modificacioacuten por medio del gateway antiguo
bull Shorewall no tiene nocioacuten de adentro o afuera por siacute mismo Estos conceptos se incorporan en el coacutemo se configura Shorewall
Arrancando y Deteniendo Su Firewall
El procedimiento de instalacioacuten configura su sistema para arrancar Shorewall al arrancar (boot) el sistema pero el inicio de Shorewall estaacute deshabilitado por omisioacuten en su configuracioacuten asiacute que no intente arrancar su Shorewall hasta que termine la configuracioacuten Una vez que se hay completado la configuracioacuten de su firewall debe editar su etcshorewallshorewallconf y poner STARTUP_ENABLED=Yes
Importante
Los usuarios del paquete deb deben editar etcdefaultshorewall y poner startup=1
El firewall se arranca usando el comando ldquoshorewall startrdquo y se detiene con el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado para aquellas maacutequinas que tengan una entrada en el archivo etcshorewallroutestopped Un firewall detenido debe ser reiniciado usando el comando ldquoshorewall restartrdquo Si desea eliminar totalmente todo rastro de Shorewall de su configuracioacuten Netfilter use el comando ldquoshorewall clearrdquo
Esta muestra two-interface asume que usted desea habilitar el enrutamiento desdehacia eth1 (la red local) cuando Shorewall estaacute detenido Si su red local no estaacute conectada a eth1 o si desea habilitar el acceso desdehacia otras maacutequinas cambie apropiadamente el archivo etcshorewallroutestopped
Alerta
Si usted estaacute conectado a su firewall desde internet no enviacutee el comando ldquoshorewall stoprdquo a menos que haya agregado una entrada con la direccioacuten IP desde donde se conectoacute al archivo etcshorewallroutestopped Tampoco recomendamos usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarla con el comando ldquoshorewall tryrdquo
Lectura Adicional Recomendada
Se le recomienda altamente la paaacutegina Archivo de Facilidades de Configuracioacuten Comunes -- contiene tips uacutetiles acerca de las facilidades Shorewall que hacen maacutes faacutecil la administracioacuten del firewall Shorewall
Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
Una vez que tiene su arreglo de dos interfaces funcionando el siguiente paso loacutegico es agregar una conexioacuten de red inalaacutembrica El primer paso es agergar la tarjeta de red adicional a su firewall ya sea una tarjeta inalaacutembirca o una tarjeta ethernet que conecte a un punto de acceso inalaacutembirco
Precaucioacuten
Cuando agrega una tarjeta de red eacutesta no seraacute necesariamente detectada como la siguiente interface ethernet superior Por ejemplo si tiene dos interfaces ethernet en su sistema (eth0 and eth1) y agrega una tercera tarjeta que usa el mismo manejador (driver) de alguna de las dos anteriores la tercera no necesariamente seraacute detectada como eth2 mal pudiera ser detectada como eth0 o eth1 Usted puede ya sea vivir con ello o puede intercambiar las tarjetas en los soacutecates hasta que la nueva tarjeta sea detectada como eth2
Su nuevo arreglo de red luciraacute similar a la figura siguiente
La primera cosa notable es que las computadores en su red inalaacutembrica estan en una subred diferente a los de su red cableada en la LAN En el ejemplo de arriba hemos escogido usar la red 101011024 Las computadoras 3 y 4 seriacutean configuradas con la direccioacuten IP del default gateway IP a 101011254
Segundo hemos escogido incluir la red inalaacutembrica como parte de la zona local Ya que Shorewall permite el traacutefico en-la-zona por omisioacuten el traacutefico puede fluir libremente entre la red cableada local y la red inalaacutembrica
Hay soacutelo dos cambios necesarios para nuestra configuracioacuten Shorewall
bull Se necesita agregar una entrada a etcshorewallinterfaces para la interface de red inalaacutembrica Si la interface inalaacutembrica es wlan0 la entrada puede lucir asiacute
ZONE INTERFACE BROADCAST OPTIONSloc wlan0 detect maclist
Como se muestra en la entrada anterior se recomienda usar la opcioacuten maclist para el segmento inalaacutembrico En paralelo agregue las entradas para las computadoras 3 y 4 en etcshorewallmaclist para prevenir que sus vecinos obtengan una conexioacuten gratuita a internet a sus expensas Comience por omitir esta opcioacuten cuando tenga todo funcionando entonces agregue esta opcioacuten y configure su archivo etcshorewallmaclist
bull Usted necesita agregar una entrada al archivo etcshorewallmasq para enmascarar el traacutefico desde la red inalaacutembrica hacia internet Si su interface hacia internet es eth0 y su interface inalaacutembrica es wlan0 la entrada seriacutea asiacute
INTERFACE SUBNET ADDRESSeth0 wlan0
Otra cosa a notar para poner la red de Microsofttrade a funcionar entre las redes inalaacutembrica y cableada necesitaraacute ya sea un servidor WINS o un PDC Yo personalmente uso Samba configurado como servidor WINS corriendo en mi firewall Correr un servidor WINS en el firewall requiere las reglas que se listan en documentacioacuten ShorewallSamba
Guiacutea de Configuracioacuten de Shorewall
Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
Precaucioacuten
Este artiacuteculo aplica a Shorewall 30 en adelante Si estaacute corriendo una versioacuten previa de Shorewall 300 entonces por favor vea la documentacioacuten para dicha liberacioacuten
Introduccioacuten
Esta guiacutea estaacute destinada a los usuarios que desean configurar Shorewall en entornos donde un conjunto de direcciones IP puacuteblicas deben ser manejadas Para quienes desean conocer maacutes acerca de Shorewall en otros entornos revise las Guiacuteas Raacutepidas de Shorewall Debido a las amplias diferentes posibles aplicaciones la Guiacutea le daraacute directrices y apuntaraacute hacia otros recursos si ello es necesario
Precaucioacuten
Shorewall requiere el paquete iprouteiproute2 instalado (en RedHat el paquete se llama iproute) Usted puede saber si el paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando ldquowhichrdquo para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se recomienda que primero lea la guiacutea para que se familiarice con lo que estaacute involucrado y luego vuelva hacia atraacute y comience sobre los cambios de configuracioacuten requeridos Los puntos donde se recomiendan cambios de
configuracioacuten se sentildealan con
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windows usted debe salvarlos como archivos Unix si su editor soporta dicha opcioacuten o debe ejecutar dicho archivo con dos2unix antes de usarlo con Shorewall De forma similar si copia un archivo de configuracioacuten desde su disco duro en Windows a un disco flexible debe ejecutar previamente dos2unix contra la copia antes de usarla con Shorewall
bull Enlace a versioacuten Windows de dos2unix httpwwwsimtelnetpubpd51438html bull Enlace a versioacuten Linux de dos2unix httpwwwmegalomancom7Ehanysoftwarehd2u
Conceptos de Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall para la mayoriacutea de las configuraciones soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea El esqueleto de archivos de configuracioacuten es creado durante el Proceso de Instalacioacuten de Shorewall
Alerta
Nota para los Usuarios Debian
Si instala usando un deb encontraraacute que el directorio etcshorewall estaacute vaciacuteo Esto es intencional Los archivos del esqueleto correspondientes a la liberacioacuten correspondiente pueden encotrarse en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no los modifica
En la medida que introducimos cada archivo sugerimos que revise dicho archivo en su sistema cada archivo contiene instrucciones detalladas de configuracioacuten
Shorewall ve la red donde estaacute corriendo como si estuviera compuesta de un conjunto de zonas En esta guiacutea usaremos las siguientes zonas
fw
El propio sistema firewall
net
La red puacuteblica Internet
loc
La red local privada que usa direcciones IP privadas
dmz
Una Zona Desmilitarizada que aloja servidores de acceso puacuteblico
Las zonas se definen en el archivo etcshorewallzones
Importante
El archivo etcshorewallzones incluiacutedo en la distribucioacuten estaacute vaciacuteo Usted puede crear el conjunto de zonas estandar descritas anteriormente copiando y pegando el siguiente contenido en dicho archivo
ZONE TYPE OPTIONSfw firewallnet ipv4loc ipv4dmz ipv4
Note que Shorewall reconoce al sistema firewall como su propia zona El ejemplo anterior sigue la convencioacuten usual de nombres zona firewall fw El nombre especificado para la zona firewall (fw en el ejemplo anterior) se almacena en la variable shell $FW cuando se procesa el archivo etcshorewallzones Con la excepcioacuten del nombre asignado a la zona firewall Shorewall no asocia ninguacuten significado especial a los nombes de zona Las zonas son lo que USTED hace de ellas Ello significa que no debe esperar que Shorewall haga algo especial porque esta es la zona interna o porque esta es la zona DMZ
Edite el archivo etcshorewallzones y haga los cambios necesarios
La reglas acerca de queacute traacutefico permitir y negar se expresan en teacuterminos de las zonas
bull Usted expresa la poliacutetica por omisioacuten para conexiones desde una a otra zona en el archivo etcshorewallpolicy
bull Usted define excepciones a dichas poliacuteticas en etcshorewallrules
Shorewall se construye sobre el motor de kernel Netfilter Netfilter implementa la funcioacuten de seguimiento de conexiones que permite lo que se denomina como inspeccioacuten por estado (stateful inspection) de paquetes Esta capacidad de manejar los estados permite que las reglas de firewall sean definidas en teacuterminos de conexiones en vez de paquetes Con Shorewall usted
1 Identifica la zona origen (cliente)2 Identifica la zona destino (servidor)3 Si la POLITICA de la zona cliente a la zona servidor es lo que desea para esta pareja clienteservidor no
necesita hacer nada adicional4 Si la POLITICA no es lo que desea entonces debe agregar una regla La regla se expresa en teacuterminos de la
zona del cliente y de la zona del servidor
Soacutelo porque las conexiones de un tipo particular desde la zona A hacia el firewall estaacuten permitidas y que tambieacuten estaacuten permitidas desde el firewall a la zona B NO sigifica que estas conexiones esten permitidas entre la zona A y la zona B (en otras palabras las poliacuteticas y reglas que involucran a la zona firewall no son transitivas) A cambio significa que usted puede tener un proxy corriendo en el firewall que acepta conexiones desde la zona A y luego establece conexiones separadas por siacute mismo desde el firewall hacia la zona B
Para cada solicitud de conexioacuten que entra al firewall la solicitud se chequea primero contra el archivo etcshorewallrules Si ninguna regla del archivo aplica se aplica a la solicitud de conexioacuten la primera poliacutetica en etcshorewallpolicy que corresponda con dicha solicitud despueacutes de que haya pasado por la accioacuten comuacuten apropiada (si existe alguna)
Previo a Shorewall 220 el archivo por omisioacuten etcshorewallpolicy teniacutea las siguientes poliacuteticas
SOURCE ZONE DESTINATION ZONE POLICY LOG LIMITBURST LEVELloc net ACCEPTnet all DROP infoall all REJECT info
Importante
El archivo de poliacuteticas de la versioacuten actual estaacute vaciacuteo Usted puede copiar y pegar las entradas anteriores para crear un punto de partida para luego personalizar sus poliacuteticas
Las poliacuteticas anteriores haraacuten que
1 permitiraacute todas las solicitudes de conexiones desde la red local hacia internet2 descartaraacute (ignoraraacute) todas las solicitudes de conexiones desde internet hacia su firewall o red local y se
registra un mensaje a nivel informativo (info level log vea aquiacute la descripcioacuten de los niveles de registro)3 rechaza todas las solicitudes de conexiones y registra un mensaje a nivel informativo Cuando una solicitud
se rechaza el firewall devuelve un RST (si el protocolo es TCP) o un paquete ICMP de puerto-inalcanzabe para los otros protocolos
En este punto edite su archivo etcshorewallpolicy y haga los cambios que desee
Interfaces de Red
Para el resto de esta guiacutea nos referiremos al siguiente diagrama Si bien puede que no luzca como el de su red puede usarse para ilustrar los aspectos importantes de la configuracioacuten Shorewall
En este diagrama
bull La Zona DMZ consiste de los sistemas DMZ 1 y DMZ 2 Una DMZ se usa para aislar su servidors accesibles desde internet de sus sistemas locales tal que si uno de esos servidores estaacute comprometido auacuten tendraacute el firewall entre el sistema comprometido y sus sistemas en la red local
bull La Zona Local consiste de los sistemas Local 1 Local 2 y Local 3bull Todos los sistemas desde el ISP hacia afuera componen la Zona Internet
La forma maacutes cimple de definir zonas es asociar el nombre de la zona (previamente definida en etcshorewallzones) con una interface de red Esto se hace en el archivo etcshorewallinterfaces El firewall ilustrado arriba tiene tres interfaces de red Donde la conectividad hacia Internet es hecha a traveacutes de un cable Modem o DSL la Interface Externa seraacute un adaptador Ethernet que se ecneuntra conectado al Modem (eg eth0) a menos que conecte usando Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta usando un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces desearaacute establecer CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Local seraacute un adaptador Ethernet (eth0 eth1 o eth2) y conectaraacute a un hub o switch Sus computadores locales estaraacuten conectadas al mismo switch o hub (nota Si tiene un uacutenico sistema local puede conectar directamente el firewall al computador utilizando un cable cruzado)
Su Interface DMZ tambieacuten seraacute un adaptador Ethernet (eth0 eth1 o eth2) y se conectaraacute a un hub o switch Sus computadores DMZ seraacuten conectados al mismo switch o hub (nota Si tiene un uacutenico sistema DMZ puede conectar directamente el firewall al computador usando un cable cruzado)
Precaucioacuten
No conecte la interace interna y externa al mismo hub o switch exceptuando para pruebas Y estaacute corriendo Shorewall 147 o superior Cuando use estas versiones recientes puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en el archivo etcshorewallinterfaces para todas las interfaces conectadas al mismo hubswitch No se recomienda utilizar tal configuracioacuten con un firewall de produccioacuten
Para el resto de esta guiacutea asumiremos que
bull La Interface Externa es eth0bull La Interface Local es eth1bull La Interface DMZ es eth2
La cinfiguracioacuten Shorewall por omisioacuten no define el contenido de ninguna zona Para definir la configuracioacuten de arriba usando el archivo etcshorewallinterfaces dicho archivo contendriacutea
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectdmz eth2 detect
Note que la zona $FW no tiene una entrada en el archvio etcshorewallinterfaces
Edite el archivo etcshorewallinterfaces y defina las interfaces de red de su firewall asociadas con su zona Si tiene una zona disponible a traveacutes de maacutes de una interface de red simplemente incluya una entrada para cada interface y repita el nombre de zona tantas veces como haga falta con su respectiva interface de red
Ejemplo 1 Muacuteltiples Interfaces hacia una Zona
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectloc eth2 detect
Usted puede definir zonas maacutes complicadas usando el archivo etcshorewallhosts pero en la mayoriacutea de los casos ello no es necesario Vea Shorewall_and_Aliased_Interfaceshtml y Multiple_Zoneshtml para algunos ejemplos
Direccionamiento Subredes y Enrutamiento
Normalmente su ISP le asignaraacute un conjunto de direcciones IP Puacuteblicas Usted configuraraacute su interface externa de su firewall para que use una de dichas direcciones permanentemente y entonces tendraacute que decidir como usaraacute el resto de sus direcciones Antes de que contestemos esta pregunta es conveniente primero revisar los fundamentos
Si usted estaacute ampliamente familiarizado con el direccionamiento IP y el enrutamiento puede ir directo a la proacutexima seccioacuten
La siguiente discusioacuten revisa someramente el direccionamiento y el enrutamiento IP Si estaacute interesado en aprender maacutes acerca del tema le recomendaos ampliamente ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0
Direcciones IP
Las direcciones IP versioacuten 4 (IPv4) son nuacutemeros de 32 -bits La notacioacuten wxyz refiere a una direccioacuten donde el byte de orden superior tiene el valor ldquowrdquo el proacuteximo byte tiene el valor ldquoxrdquo etc Si tomamos la direccioacuten 1920214 y la expresamos en hexadecimal obtenemos
C000020E
o viacuteendolo como un entero de 32-bits
C000020E
Subredes
Usted comenzaraacute a escuchar los teacuterminos ldquored Clase Ardquo ldquored Clase B y red Clase C En los primeros diacuteas de IP las redes veniacutean en tres tamantildeos (existiacutea tambieacuten redes Clase D pero era usada de forma diferente)
Clase A - maacutescara de red 255000 size = 2 24Clase B - maacutescara de red 25525500 size = 2 16
Clase C - maacutescara de red 2552552550 size = 256
La clase de una red era determinada uniacutevocamente por el valor del byte superior de su direccioacuten tal que usted pudiera ver la direccioacuten IP e inmediatamente determinara la maacutescara asociada La maacutescara de red es un nuacutemero que cuando se aplica un Y loacutegico con la direccioacuten separa la direccioacuten de red del resto que es la direccioacuten de host Por ejemplo la direccioacuten Clase C 1920214 la direccioacuten de red es el hexadecimal C00002 y el nuacutemero de host es 0E
En la medida que internet crecioacute se hizo claro que tal particionamiento tan grueso de direcciones de 32-bits iva a ser muy limitante (iexclPreviamente a las grandes corporaciones y universidades le fueron asignadas sus propias redes clase A) Despueacutes de unos arranques en falso la teacutecnica de subredes evolucionoacute al sistema actual de redes maacutes pequentildeas la teacutecnica se le refiere como Classless InterDomain Routing (CIDR) Hoy diacutea cualquier sistema que usted probablemente use entenderaacute CIDR y las redes basadas en clases son ya algo del pasado
Una subred es un conjunto contiguo de direcciones IP tal que
1 La cantidad de direcciones en el conjunto es una potencia de 2 y2 La primera direccioacuten en el conjunto es un muacuteltiplo del tamantildeo del conjunto3 La primera direccioacuten en la subred se reserva y se le refiere como la direccioacuten de subred4 La uacutetima direccioacuten en la subred estaacute reservada como la direccioacuten de difusioacuten(broadcast) de la subred
Como puede ver por definicioacuten en cada subred de tamantildeo n hay (n - 2) direcciones utilizables (direcciones que se pueden asignar a maacutequinas) La primera y uacuteltima direccioacuten en la subred son utilizadas como direccioacuten de la subred y direccioacuten de difusioacuten respectivamente En consecuencia las subredes maacutes pequentildeas desperdician maacutes direcciones IP que las redes maacutes grandes
Ya que n es una potencia de dos faacutecilmente podemos calcular el Logaritmo-Base2 (log2) de n Para los tamantildeos maacutes comunes de subred el tamantildeo y su logaritmos base 2 son dados por la siguiente tabla
Tabla 1 Logaritmos Base-2
n log2 n (32 - log2 n)
8 3 29
16 4 28
32 5 27
64 6 26
128 7 25
256 8 24
512 9 23
1024 10 22
2048 11 21
4096 12 20
8192 13 19
16384 14 18
32768 15 17
65536 16 16
Notaraacute que la tabla arriba tambieacuten contiene una columna parar (32 - log2 n) Este nuacutemero es la Variable Length Subnet Mask (VLSM) para una red de tamantildeo n De la tabla arriba podemos derivar la siguiente que es un poco maacutes faacutecil de usar
Tabla 2 VLSM
Subnet Size VLSM Subnet Mask
8 29 255255255248
16 28 255255255240
32 27 255255255224
64 26 255255255192
128 25 255255255128
256 24 2552552550
512 23 2552552540
1024 22 2552552520
2048 21 2552552480
4096 20 2552552400
8192 19 2552552240
16384 18 2552551920
32768 17 2552551280
65536 16 25525500
2 24 8 255000
Note que la VLSM se escribe con barra (ldquordquo) -- a menudo escucharaacute de una subred de tamantildeo 64 referida como una subred ldquobarra 26rdquo y una de tamantildeo 8 referida como de ldquobarra 29rdquo
La maacutescara de subred es simplemente un nuacutemero de 32 bits con los primeros ldquoVLSMrdquo bits puestos a uno y los remanentes bits puestos a cero Por ejemplo para una subred de tamantildeo 64 la maacutescara de subred tiene los primeros 26 bits en uno
11111111111111111111111111000000 = FFFFFFC0 = FFFFFFC0 = 255255255192
La maacutescara de subred tiene la propiedad de que si se hace un Y loacutegico con una direccioacuten en la subred el resultado es la direccioacuten de la subred Igual de importante si hace un Y loacutegico de la maacutescara de subre con una direccioacuten fuera de la subred el resultado NO es la direccioacuten de la subred Como ya veremos esta propiedad de la maacutescara de subred es muy uacutetil para el enrutamiento
Para una subred cuya direccioacuten es abcd y cuyo Variable Length Subnet Mask es v denotamos la subred como ldquoabcdvrdquo usando Notacioacuten CIDR Ejemplo
Tabla 3 Subred
Subred 1010100 - 101010127
Tamantildeo Subred 128
Direccioacuten Subred 1010100
Direccioacuten Difusioacuten 101010127
Notacioacuten CIDR 101010025
Existen dos subredes degeneradas que merecen ser nombradas la subred con un miembro y la subre con 2 32 miembros
Tabla 4 32 y 0
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
Ejemplo 3 Servidor Web en el Firewall
Usted desea correr un servidor Web en su sistema firewall
ACTION SOURCE DEST PROTO DEST PORT(S)WebACCEPT net $FWWebACCEPT loc $FW
Estas dos reglas por supuesto seriacutean un agregado a las reglas listadas arriba bajo ldquoPuede configurar un Cache Servidor de Nombres en su firewall rdquo
Si no sabe queacute puerto y protcolo usa una aplicacioacuten particular mire aquiacute
Importante
No recomendados habilitar telnet desdehacia internet porque usa texto en claro para su comunicacioacuten (incluso para el login) Si desea acceso shell para su firewall desde Internet use SSH
ACTION SOURCE DEST PROTO DEST PORT(S)SSHACCEPT net $FW
Los usuarios Bering querraacuten agregar las siguientes dos reglas para ser compatibles con la configuracioacuten Shorewall de Jacques
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT loc $FW udp 53 Allow DNS Cache to workACCEPT loc $FW tcp 80 Allow Weblet to work
Ahora edite su archivo etcshorewallrules para agregar o eliminar otras conexiones como se necesario
Algunos Concejos a Mantener en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque enviacutee solicitudes de conexioacuten a la direccioacuten IP de la interface externa de su firewall no significa que la solicitud seraacute asociada con la interface externa o con la zona ldquonetrdquo Cualquier traacutefico que se genere desde la red local seraacute asociado con su interface local y seraacute tratado como traacutefico loc-gtfw
bull Las direcciones IP son propiedades de los sistemas no de las interfaces Es un error pensar que su firewall sea capaz de renviar paquetes soacutelo porque puede hacerle ping a la direccioacuten IP de todas las interfaces IP del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping exitoso es que el enlace entre el sistema local y el firewall funciona bien y que probablemente tenga bien configurado el default gateway del sistema local
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zonas loc poniendo una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO necesariamente siguen automaacuteticamente el camino reverso al tomado por el paquete original de solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso en su camino Este tema usualmente salta a la palestra cuando se instala un firewall Shorewallall en paralelo a un gateway existente y se intenta usar DNAT a traveacutes del Shorewall sin cambiar el default gateway en el sistema que recibe la solicitud renviada Las solicitudes
entraraacuten por el firewall Shorewall donde la direccioacuten IP destino es rescrita pero la respuesta sale sin modificacioacuten por medio del gateway antiguo
bull Shorewall no tiene nocioacuten de adentro o afuera por siacute mismo Estos conceptos se incorporan en el coacutemo se configura Shorewall
Arrancando y Deteniendo Su Firewall
El procedimiento de instalacioacuten configura su sistema para arrancar Shorewall al arrancar (boot) el sistema pero el inicio de Shorewall estaacute deshabilitado por omisioacuten en su configuracioacuten asiacute que no intente arrancar su Shorewall hasta que termine la configuracioacuten Una vez que se hay completado la configuracioacuten de su firewall debe editar su etcshorewallshorewallconf y poner STARTUP_ENABLED=Yes
Importante
Los usuarios del paquete deb deben editar etcdefaultshorewall y poner startup=1
El firewall se arranca usando el comando ldquoshorewall startrdquo y se detiene con el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado para aquellas maacutequinas que tengan una entrada en el archivo etcshorewallroutestopped Un firewall detenido debe ser reiniciado usando el comando ldquoshorewall restartrdquo Si desea eliminar totalmente todo rastro de Shorewall de su configuracioacuten Netfilter use el comando ldquoshorewall clearrdquo
Esta muestra two-interface asume que usted desea habilitar el enrutamiento desdehacia eth1 (la red local) cuando Shorewall estaacute detenido Si su red local no estaacute conectada a eth1 o si desea habilitar el acceso desdehacia otras maacutequinas cambie apropiadamente el archivo etcshorewallroutestopped
Alerta
Si usted estaacute conectado a su firewall desde internet no enviacutee el comando ldquoshorewall stoprdquo a menos que haya agregado una entrada con la direccioacuten IP desde donde se conectoacute al archivo etcshorewallroutestopped Tampoco recomendamos usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarla con el comando ldquoshorewall tryrdquo
Lectura Adicional Recomendada
Se le recomienda altamente la paaacutegina Archivo de Facilidades de Configuracioacuten Comunes -- contiene tips uacutetiles acerca de las facilidades Shorewall que hacen maacutes faacutecil la administracioacuten del firewall Shorewall
Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
Una vez que tiene su arreglo de dos interfaces funcionando el siguiente paso loacutegico es agregar una conexioacuten de red inalaacutembrica El primer paso es agergar la tarjeta de red adicional a su firewall ya sea una tarjeta inalaacutembirca o una tarjeta ethernet que conecte a un punto de acceso inalaacutembirco
Precaucioacuten
Cuando agrega una tarjeta de red eacutesta no seraacute necesariamente detectada como la siguiente interface ethernet superior Por ejemplo si tiene dos interfaces ethernet en su sistema (eth0 and eth1) y agrega una tercera tarjeta que usa el mismo manejador (driver) de alguna de las dos anteriores la tercera no necesariamente seraacute detectada como eth2 mal pudiera ser detectada como eth0 o eth1 Usted puede ya sea vivir con ello o puede intercambiar las tarjetas en los soacutecates hasta que la nueva tarjeta sea detectada como eth2
Su nuevo arreglo de red luciraacute similar a la figura siguiente
La primera cosa notable es que las computadores en su red inalaacutembrica estan en una subred diferente a los de su red cableada en la LAN En el ejemplo de arriba hemos escogido usar la red 101011024 Las computadoras 3 y 4 seriacutean configuradas con la direccioacuten IP del default gateway IP a 101011254
Segundo hemos escogido incluir la red inalaacutembrica como parte de la zona local Ya que Shorewall permite el traacutefico en-la-zona por omisioacuten el traacutefico puede fluir libremente entre la red cableada local y la red inalaacutembrica
Hay soacutelo dos cambios necesarios para nuestra configuracioacuten Shorewall
bull Se necesita agregar una entrada a etcshorewallinterfaces para la interface de red inalaacutembrica Si la interface inalaacutembrica es wlan0 la entrada puede lucir asiacute
ZONE INTERFACE BROADCAST OPTIONSloc wlan0 detect maclist
Como se muestra en la entrada anterior se recomienda usar la opcioacuten maclist para el segmento inalaacutembrico En paralelo agregue las entradas para las computadoras 3 y 4 en etcshorewallmaclist para prevenir que sus vecinos obtengan una conexioacuten gratuita a internet a sus expensas Comience por omitir esta opcioacuten cuando tenga todo funcionando entonces agregue esta opcioacuten y configure su archivo etcshorewallmaclist
bull Usted necesita agregar una entrada al archivo etcshorewallmasq para enmascarar el traacutefico desde la red inalaacutembrica hacia internet Si su interface hacia internet es eth0 y su interface inalaacutembrica es wlan0 la entrada seriacutea asiacute
INTERFACE SUBNET ADDRESSeth0 wlan0
Otra cosa a notar para poner la red de Microsofttrade a funcionar entre las redes inalaacutembrica y cableada necesitaraacute ya sea un servidor WINS o un PDC Yo personalmente uso Samba configurado como servidor WINS corriendo en mi firewall Correr un servidor WINS en el firewall requiere las reglas que se listan en documentacioacuten ShorewallSamba
Guiacutea de Configuracioacuten de Shorewall
Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
Precaucioacuten
Este artiacuteculo aplica a Shorewall 30 en adelante Si estaacute corriendo una versioacuten previa de Shorewall 300 entonces por favor vea la documentacioacuten para dicha liberacioacuten
Introduccioacuten
Esta guiacutea estaacute destinada a los usuarios que desean configurar Shorewall en entornos donde un conjunto de direcciones IP puacuteblicas deben ser manejadas Para quienes desean conocer maacutes acerca de Shorewall en otros entornos revise las Guiacuteas Raacutepidas de Shorewall Debido a las amplias diferentes posibles aplicaciones la Guiacutea le daraacute directrices y apuntaraacute hacia otros recursos si ello es necesario
Precaucioacuten
Shorewall requiere el paquete iprouteiproute2 instalado (en RedHat el paquete se llama iproute) Usted puede saber si el paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando ldquowhichrdquo para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se recomienda que primero lea la guiacutea para que se familiarice con lo que estaacute involucrado y luego vuelva hacia atraacute y comience sobre los cambios de configuracioacuten requeridos Los puntos donde se recomiendan cambios de
configuracioacuten se sentildealan con
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windows usted debe salvarlos como archivos Unix si su editor soporta dicha opcioacuten o debe ejecutar dicho archivo con dos2unix antes de usarlo con Shorewall De forma similar si copia un archivo de configuracioacuten desde su disco duro en Windows a un disco flexible debe ejecutar previamente dos2unix contra la copia antes de usarla con Shorewall
bull Enlace a versioacuten Windows de dos2unix httpwwwsimtelnetpubpd51438html bull Enlace a versioacuten Linux de dos2unix httpwwwmegalomancom7Ehanysoftwarehd2u
Conceptos de Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall para la mayoriacutea de las configuraciones soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea El esqueleto de archivos de configuracioacuten es creado durante el Proceso de Instalacioacuten de Shorewall
Alerta
Nota para los Usuarios Debian
Si instala usando un deb encontraraacute que el directorio etcshorewall estaacute vaciacuteo Esto es intencional Los archivos del esqueleto correspondientes a la liberacioacuten correspondiente pueden encotrarse en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no los modifica
En la medida que introducimos cada archivo sugerimos que revise dicho archivo en su sistema cada archivo contiene instrucciones detalladas de configuracioacuten
Shorewall ve la red donde estaacute corriendo como si estuviera compuesta de un conjunto de zonas En esta guiacutea usaremos las siguientes zonas
fw
El propio sistema firewall
net
La red puacuteblica Internet
loc
La red local privada que usa direcciones IP privadas
dmz
Una Zona Desmilitarizada que aloja servidores de acceso puacuteblico
Las zonas se definen en el archivo etcshorewallzones
Importante
El archivo etcshorewallzones incluiacutedo en la distribucioacuten estaacute vaciacuteo Usted puede crear el conjunto de zonas estandar descritas anteriormente copiando y pegando el siguiente contenido en dicho archivo
ZONE TYPE OPTIONSfw firewallnet ipv4loc ipv4dmz ipv4
Note que Shorewall reconoce al sistema firewall como su propia zona El ejemplo anterior sigue la convencioacuten usual de nombres zona firewall fw El nombre especificado para la zona firewall (fw en el ejemplo anterior) se almacena en la variable shell $FW cuando se procesa el archivo etcshorewallzones Con la excepcioacuten del nombre asignado a la zona firewall Shorewall no asocia ninguacuten significado especial a los nombes de zona Las zonas son lo que USTED hace de ellas Ello significa que no debe esperar que Shorewall haga algo especial porque esta es la zona interna o porque esta es la zona DMZ
Edite el archivo etcshorewallzones y haga los cambios necesarios
La reglas acerca de queacute traacutefico permitir y negar se expresan en teacuterminos de las zonas
bull Usted expresa la poliacutetica por omisioacuten para conexiones desde una a otra zona en el archivo etcshorewallpolicy
bull Usted define excepciones a dichas poliacuteticas en etcshorewallrules
Shorewall se construye sobre el motor de kernel Netfilter Netfilter implementa la funcioacuten de seguimiento de conexiones que permite lo que se denomina como inspeccioacuten por estado (stateful inspection) de paquetes Esta capacidad de manejar los estados permite que las reglas de firewall sean definidas en teacuterminos de conexiones en vez de paquetes Con Shorewall usted
1 Identifica la zona origen (cliente)2 Identifica la zona destino (servidor)3 Si la POLITICA de la zona cliente a la zona servidor es lo que desea para esta pareja clienteservidor no
necesita hacer nada adicional4 Si la POLITICA no es lo que desea entonces debe agregar una regla La regla se expresa en teacuterminos de la
zona del cliente y de la zona del servidor
Soacutelo porque las conexiones de un tipo particular desde la zona A hacia el firewall estaacuten permitidas y que tambieacuten estaacuten permitidas desde el firewall a la zona B NO sigifica que estas conexiones esten permitidas entre la zona A y la zona B (en otras palabras las poliacuteticas y reglas que involucran a la zona firewall no son transitivas) A cambio significa que usted puede tener un proxy corriendo en el firewall que acepta conexiones desde la zona A y luego establece conexiones separadas por siacute mismo desde el firewall hacia la zona B
Para cada solicitud de conexioacuten que entra al firewall la solicitud se chequea primero contra el archivo etcshorewallrules Si ninguna regla del archivo aplica se aplica a la solicitud de conexioacuten la primera poliacutetica en etcshorewallpolicy que corresponda con dicha solicitud despueacutes de que haya pasado por la accioacuten comuacuten apropiada (si existe alguna)
Previo a Shorewall 220 el archivo por omisioacuten etcshorewallpolicy teniacutea las siguientes poliacuteticas
SOURCE ZONE DESTINATION ZONE POLICY LOG LIMITBURST LEVELloc net ACCEPTnet all DROP infoall all REJECT info
Importante
El archivo de poliacuteticas de la versioacuten actual estaacute vaciacuteo Usted puede copiar y pegar las entradas anteriores para crear un punto de partida para luego personalizar sus poliacuteticas
Las poliacuteticas anteriores haraacuten que
1 permitiraacute todas las solicitudes de conexiones desde la red local hacia internet2 descartaraacute (ignoraraacute) todas las solicitudes de conexiones desde internet hacia su firewall o red local y se
registra un mensaje a nivel informativo (info level log vea aquiacute la descripcioacuten de los niveles de registro)3 rechaza todas las solicitudes de conexiones y registra un mensaje a nivel informativo Cuando una solicitud
se rechaza el firewall devuelve un RST (si el protocolo es TCP) o un paquete ICMP de puerto-inalcanzabe para los otros protocolos
En este punto edite su archivo etcshorewallpolicy y haga los cambios que desee
Interfaces de Red
Para el resto de esta guiacutea nos referiremos al siguiente diagrama Si bien puede que no luzca como el de su red puede usarse para ilustrar los aspectos importantes de la configuracioacuten Shorewall
En este diagrama
bull La Zona DMZ consiste de los sistemas DMZ 1 y DMZ 2 Una DMZ se usa para aislar su servidors accesibles desde internet de sus sistemas locales tal que si uno de esos servidores estaacute comprometido auacuten tendraacute el firewall entre el sistema comprometido y sus sistemas en la red local
bull La Zona Local consiste de los sistemas Local 1 Local 2 y Local 3bull Todos los sistemas desde el ISP hacia afuera componen la Zona Internet
La forma maacutes cimple de definir zonas es asociar el nombre de la zona (previamente definida en etcshorewallzones) con una interface de red Esto se hace en el archivo etcshorewallinterfaces El firewall ilustrado arriba tiene tres interfaces de red Donde la conectividad hacia Internet es hecha a traveacutes de un cable Modem o DSL la Interface Externa seraacute un adaptador Ethernet que se ecneuntra conectado al Modem (eg eth0) a menos que conecte usando Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta usando un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces desearaacute establecer CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Local seraacute un adaptador Ethernet (eth0 eth1 o eth2) y conectaraacute a un hub o switch Sus computadores locales estaraacuten conectadas al mismo switch o hub (nota Si tiene un uacutenico sistema local puede conectar directamente el firewall al computador utilizando un cable cruzado)
Su Interface DMZ tambieacuten seraacute un adaptador Ethernet (eth0 eth1 o eth2) y se conectaraacute a un hub o switch Sus computadores DMZ seraacuten conectados al mismo switch o hub (nota Si tiene un uacutenico sistema DMZ puede conectar directamente el firewall al computador usando un cable cruzado)
Precaucioacuten
No conecte la interace interna y externa al mismo hub o switch exceptuando para pruebas Y estaacute corriendo Shorewall 147 o superior Cuando use estas versiones recientes puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en el archivo etcshorewallinterfaces para todas las interfaces conectadas al mismo hubswitch No se recomienda utilizar tal configuracioacuten con un firewall de produccioacuten
Para el resto de esta guiacutea asumiremos que
bull La Interface Externa es eth0bull La Interface Local es eth1bull La Interface DMZ es eth2
La cinfiguracioacuten Shorewall por omisioacuten no define el contenido de ninguna zona Para definir la configuracioacuten de arriba usando el archivo etcshorewallinterfaces dicho archivo contendriacutea
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectdmz eth2 detect
Note que la zona $FW no tiene una entrada en el archvio etcshorewallinterfaces
Edite el archivo etcshorewallinterfaces y defina las interfaces de red de su firewall asociadas con su zona Si tiene una zona disponible a traveacutes de maacutes de una interface de red simplemente incluya una entrada para cada interface y repita el nombre de zona tantas veces como haga falta con su respectiva interface de red
Ejemplo 1 Muacuteltiples Interfaces hacia una Zona
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectloc eth2 detect
Usted puede definir zonas maacutes complicadas usando el archivo etcshorewallhosts pero en la mayoriacutea de los casos ello no es necesario Vea Shorewall_and_Aliased_Interfaceshtml y Multiple_Zoneshtml para algunos ejemplos
Direccionamiento Subredes y Enrutamiento
Normalmente su ISP le asignaraacute un conjunto de direcciones IP Puacuteblicas Usted configuraraacute su interface externa de su firewall para que use una de dichas direcciones permanentemente y entonces tendraacute que decidir como usaraacute el resto de sus direcciones Antes de que contestemos esta pregunta es conveniente primero revisar los fundamentos
Si usted estaacute ampliamente familiarizado con el direccionamiento IP y el enrutamiento puede ir directo a la proacutexima seccioacuten
La siguiente discusioacuten revisa someramente el direccionamiento y el enrutamiento IP Si estaacute interesado en aprender maacutes acerca del tema le recomendaos ampliamente ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0
Direcciones IP
Las direcciones IP versioacuten 4 (IPv4) son nuacutemeros de 32 -bits La notacioacuten wxyz refiere a una direccioacuten donde el byte de orden superior tiene el valor ldquowrdquo el proacuteximo byte tiene el valor ldquoxrdquo etc Si tomamos la direccioacuten 1920214 y la expresamos en hexadecimal obtenemos
C000020E
o viacuteendolo como un entero de 32-bits
C000020E
Subredes
Usted comenzaraacute a escuchar los teacuterminos ldquored Clase Ardquo ldquored Clase B y red Clase C En los primeros diacuteas de IP las redes veniacutean en tres tamantildeos (existiacutea tambieacuten redes Clase D pero era usada de forma diferente)
Clase A - maacutescara de red 255000 size = 2 24Clase B - maacutescara de red 25525500 size = 2 16
Clase C - maacutescara de red 2552552550 size = 256
La clase de una red era determinada uniacutevocamente por el valor del byte superior de su direccioacuten tal que usted pudiera ver la direccioacuten IP e inmediatamente determinara la maacutescara asociada La maacutescara de red es un nuacutemero que cuando se aplica un Y loacutegico con la direccioacuten separa la direccioacuten de red del resto que es la direccioacuten de host Por ejemplo la direccioacuten Clase C 1920214 la direccioacuten de red es el hexadecimal C00002 y el nuacutemero de host es 0E
En la medida que internet crecioacute se hizo claro que tal particionamiento tan grueso de direcciones de 32-bits iva a ser muy limitante (iexclPreviamente a las grandes corporaciones y universidades le fueron asignadas sus propias redes clase A) Despueacutes de unos arranques en falso la teacutecnica de subredes evolucionoacute al sistema actual de redes maacutes pequentildeas la teacutecnica se le refiere como Classless InterDomain Routing (CIDR) Hoy diacutea cualquier sistema que usted probablemente use entenderaacute CIDR y las redes basadas en clases son ya algo del pasado
Una subred es un conjunto contiguo de direcciones IP tal que
1 La cantidad de direcciones en el conjunto es una potencia de 2 y2 La primera direccioacuten en el conjunto es un muacuteltiplo del tamantildeo del conjunto3 La primera direccioacuten en la subred se reserva y se le refiere como la direccioacuten de subred4 La uacutetima direccioacuten en la subred estaacute reservada como la direccioacuten de difusioacuten(broadcast) de la subred
Como puede ver por definicioacuten en cada subred de tamantildeo n hay (n - 2) direcciones utilizables (direcciones que se pueden asignar a maacutequinas) La primera y uacuteltima direccioacuten en la subred son utilizadas como direccioacuten de la subred y direccioacuten de difusioacuten respectivamente En consecuencia las subredes maacutes pequentildeas desperdician maacutes direcciones IP que las redes maacutes grandes
Ya que n es una potencia de dos faacutecilmente podemos calcular el Logaritmo-Base2 (log2) de n Para los tamantildeos maacutes comunes de subred el tamantildeo y su logaritmos base 2 son dados por la siguiente tabla
Tabla 1 Logaritmos Base-2
n log2 n (32 - log2 n)
8 3 29
16 4 28
32 5 27
64 6 26
128 7 25
256 8 24
512 9 23
1024 10 22
2048 11 21
4096 12 20
8192 13 19
16384 14 18
32768 15 17
65536 16 16
Notaraacute que la tabla arriba tambieacuten contiene una columna parar (32 - log2 n) Este nuacutemero es la Variable Length Subnet Mask (VLSM) para una red de tamantildeo n De la tabla arriba podemos derivar la siguiente que es un poco maacutes faacutecil de usar
Tabla 2 VLSM
Subnet Size VLSM Subnet Mask
8 29 255255255248
16 28 255255255240
32 27 255255255224
64 26 255255255192
128 25 255255255128
256 24 2552552550
512 23 2552552540
1024 22 2552552520
2048 21 2552552480
4096 20 2552552400
8192 19 2552552240
16384 18 2552551920
32768 17 2552551280
65536 16 25525500
2 24 8 255000
Note que la VLSM se escribe con barra (ldquordquo) -- a menudo escucharaacute de una subred de tamantildeo 64 referida como una subred ldquobarra 26rdquo y una de tamantildeo 8 referida como de ldquobarra 29rdquo
La maacutescara de subred es simplemente un nuacutemero de 32 bits con los primeros ldquoVLSMrdquo bits puestos a uno y los remanentes bits puestos a cero Por ejemplo para una subred de tamantildeo 64 la maacutescara de subred tiene los primeros 26 bits en uno
11111111111111111111111111000000 = FFFFFFC0 = FFFFFFC0 = 255255255192
La maacutescara de subred tiene la propiedad de que si se hace un Y loacutegico con una direccioacuten en la subred el resultado es la direccioacuten de la subred Igual de importante si hace un Y loacutegico de la maacutescara de subre con una direccioacuten fuera de la subred el resultado NO es la direccioacuten de la subred Como ya veremos esta propiedad de la maacutescara de subred es muy uacutetil para el enrutamiento
Para una subred cuya direccioacuten es abcd y cuyo Variable Length Subnet Mask es v denotamos la subred como ldquoabcdvrdquo usando Notacioacuten CIDR Ejemplo
Tabla 3 Subred
Subred 1010100 - 101010127
Tamantildeo Subred 128
Direccioacuten Subred 1010100
Direccioacuten Difusioacuten 101010127
Notacioacuten CIDR 101010025
Existen dos subredes degeneradas que merecen ser nombradas la subred con un miembro y la subre con 2 32 miembros
Tabla 4 32 y 0
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
entraraacuten por el firewall Shorewall donde la direccioacuten IP destino es rescrita pero la respuesta sale sin modificacioacuten por medio del gateway antiguo
bull Shorewall no tiene nocioacuten de adentro o afuera por siacute mismo Estos conceptos se incorporan en el coacutemo se configura Shorewall
Arrancando y Deteniendo Su Firewall
El procedimiento de instalacioacuten configura su sistema para arrancar Shorewall al arrancar (boot) el sistema pero el inicio de Shorewall estaacute deshabilitado por omisioacuten en su configuracioacuten asiacute que no intente arrancar su Shorewall hasta que termine la configuracioacuten Una vez que se hay completado la configuracioacuten de su firewall debe editar su etcshorewallshorewallconf y poner STARTUP_ENABLED=Yes
Importante
Los usuarios del paquete deb deben editar etcdefaultshorewall y poner startup=1
El firewall se arranca usando el comando ldquoshorewall startrdquo y se detiene con el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado para aquellas maacutequinas que tengan una entrada en el archivo etcshorewallroutestopped Un firewall detenido debe ser reiniciado usando el comando ldquoshorewall restartrdquo Si desea eliminar totalmente todo rastro de Shorewall de su configuracioacuten Netfilter use el comando ldquoshorewall clearrdquo
Esta muestra two-interface asume que usted desea habilitar el enrutamiento desdehacia eth1 (la red local) cuando Shorewall estaacute detenido Si su red local no estaacute conectada a eth1 o si desea habilitar el acceso desdehacia otras maacutequinas cambie apropiadamente el archivo etcshorewallroutestopped
Alerta
Si usted estaacute conectado a su firewall desde internet no enviacutee el comando ldquoshorewall stoprdquo a menos que haya agregado una entrada con la direccioacuten IP desde donde se conectoacute al archivo etcshorewallroutestopped Tampoco recomendamos usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarla con el comando ldquoshorewall tryrdquo
Lectura Adicional Recomendada
Se le recomienda altamente la paaacutegina Archivo de Facilidades de Configuracioacuten Comunes -- contiene tips uacutetiles acerca de las facilidades Shorewall que hacen maacutes faacutecil la administracioacuten del firewall Shorewall
Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
Una vez que tiene su arreglo de dos interfaces funcionando el siguiente paso loacutegico es agregar una conexioacuten de red inalaacutembrica El primer paso es agergar la tarjeta de red adicional a su firewall ya sea una tarjeta inalaacutembirca o una tarjeta ethernet que conecte a un punto de acceso inalaacutembirco
Precaucioacuten
Cuando agrega una tarjeta de red eacutesta no seraacute necesariamente detectada como la siguiente interface ethernet superior Por ejemplo si tiene dos interfaces ethernet en su sistema (eth0 and eth1) y agrega una tercera tarjeta que usa el mismo manejador (driver) de alguna de las dos anteriores la tercera no necesariamente seraacute detectada como eth2 mal pudiera ser detectada como eth0 o eth1 Usted puede ya sea vivir con ello o puede intercambiar las tarjetas en los soacutecates hasta que la nueva tarjeta sea detectada como eth2
Su nuevo arreglo de red luciraacute similar a la figura siguiente
La primera cosa notable es que las computadores en su red inalaacutembrica estan en una subred diferente a los de su red cableada en la LAN En el ejemplo de arriba hemos escogido usar la red 101011024 Las computadoras 3 y 4 seriacutean configuradas con la direccioacuten IP del default gateway IP a 101011254
Segundo hemos escogido incluir la red inalaacutembrica como parte de la zona local Ya que Shorewall permite el traacutefico en-la-zona por omisioacuten el traacutefico puede fluir libremente entre la red cableada local y la red inalaacutembrica
Hay soacutelo dos cambios necesarios para nuestra configuracioacuten Shorewall
bull Se necesita agregar una entrada a etcshorewallinterfaces para la interface de red inalaacutembrica Si la interface inalaacutembrica es wlan0 la entrada puede lucir asiacute
ZONE INTERFACE BROADCAST OPTIONSloc wlan0 detect maclist
Como se muestra en la entrada anterior se recomienda usar la opcioacuten maclist para el segmento inalaacutembrico En paralelo agregue las entradas para las computadoras 3 y 4 en etcshorewallmaclist para prevenir que sus vecinos obtengan una conexioacuten gratuita a internet a sus expensas Comience por omitir esta opcioacuten cuando tenga todo funcionando entonces agregue esta opcioacuten y configure su archivo etcshorewallmaclist
bull Usted necesita agregar una entrada al archivo etcshorewallmasq para enmascarar el traacutefico desde la red inalaacutembrica hacia internet Si su interface hacia internet es eth0 y su interface inalaacutembrica es wlan0 la entrada seriacutea asiacute
INTERFACE SUBNET ADDRESSeth0 wlan0
Otra cosa a notar para poner la red de Microsofttrade a funcionar entre las redes inalaacutembrica y cableada necesitaraacute ya sea un servidor WINS o un PDC Yo personalmente uso Samba configurado como servidor WINS corriendo en mi firewall Correr un servidor WINS en el firewall requiere las reglas que se listan en documentacioacuten ShorewallSamba
Guiacutea de Configuracioacuten de Shorewall
Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
Precaucioacuten
Este artiacuteculo aplica a Shorewall 30 en adelante Si estaacute corriendo una versioacuten previa de Shorewall 300 entonces por favor vea la documentacioacuten para dicha liberacioacuten
Introduccioacuten
Esta guiacutea estaacute destinada a los usuarios que desean configurar Shorewall en entornos donde un conjunto de direcciones IP puacuteblicas deben ser manejadas Para quienes desean conocer maacutes acerca de Shorewall en otros entornos revise las Guiacuteas Raacutepidas de Shorewall Debido a las amplias diferentes posibles aplicaciones la Guiacutea le daraacute directrices y apuntaraacute hacia otros recursos si ello es necesario
Precaucioacuten
Shorewall requiere el paquete iprouteiproute2 instalado (en RedHat el paquete se llama iproute) Usted puede saber si el paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando ldquowhichrdquo para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se recomienda que primero lea la guiacutea para que se familiarice con lo que estaacute involucrado y luego vuelva hacia atraacute y comience sobre los cambios de configuracioacuten requeridos Los puntos donde se recomiendan cambios de
configuracioacuten se sentildealan con
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windows usted debe salvarlos como archivos Unix si su editor soporta dicha opcioacuten o debe ejecutar dicho archivo con dos2unix antes de usarlo con Shorewall De forma similar si copia un archivo de configuracioacuten desde su disco duro en Windows a un disco flexible debe ejecutar previamente dos2unix contra la copia antes de usarla con Shorewall
bull Enlace a versioacuten Windows de dos2unix httpwwwsimtelnetpubpd51438html bull Enlace a versioacuten Linux de dos2unix httpwwwmegalomancom7Ehanysoftwarehd2u
Conceptos de Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall para la mayoriacutea de las configuraciones soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea El esqueleto de archivos de configuracioacuten es creado durante el Proceso de Instalacioacuten de Shorewall
Alerta
Nota para los Usuarios Debian
Si instala usando un deb encontraraacute que el directorio etcshorewall estaacute vaciacuteo Esto es intencional Los archivos del esqueleto correspondientes a la liberacioacuten correspondiente pueden encotrarse en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no los modifica
En la medida que introducimos cada archivo sugerimos que revise dicho archivo en su sistema cada archivo contiene instrucciones detalladas de configuracioacuten
Shorewall ve la red donde estaacute corriendo como si estuviera compuesta de un conjunto de zonas En esta guiacutea usaremos las siguientes zonas
fw
El propio sistema firewall
net
La red puacuteblica Internet
loc
La red local privada que usa direcciones IP privadas
dmz
Una Zona Desmilitarizada que aloja servidores de acceso puacuteblico
Las zonas se definen en el archivo etcshorewallzones
Importante
El archivo etcshorewallzones incluiacutedo en la distribucioacuten estaacute vaciacuteo Usted puede crear el conjunto de zonas estandar descritas anteriormente copiando y pegando el siguiente contenido en dicho archivo
ZONE TYPE OPTIONSfw firewallnet ipv4loc ipv4dmz ipv4
Note que Shorewall reconoce al sistema firewall como su propia zona El ejemplo anterior sigue la convencioacuten usual de nombres zona firewall fw El nombre especificado para la zona firewall (fw en el ejemplo anterior) se almacena en la variable shell $FW cuando se procesa el archivo etcshorewallzones Con la excepcioacuten del nombre asignado a la zona firewall Shorewall no asocia ninguacuten significado especial a los nombes de zona Las zonas son lo que USTED hace de ellas Ello significa que no debe esperar que Shorewall haga algo especial porque esta es la zona interna o porque esta es la zona DMZ
Edite el archivo etcshorewallzones y haga los cambios necesarios
La reglas acerca de queacute traacutefico permitir y negar se expresan en teacuterminos de las zonas
bull Usted expresa la poliacutetica por omisioacuten para conexiones desde una a otra zona en el archivo etcshorewallpolicy
bull Usted define excepciones a dichas poliacuteticas en etcshorewallrules
Shorewall se construye sobre el motor de kernel Netfilter Netfilter implementa la funcioacuten de seguimiento de conexiones que permite lo que se denomina como inspeccioacuten por estado (stateful inspection) de paquetes Esta capacidad de manejar los estados permite que las reglas de firewall sean definidas en teacuterminos de conexiones en vez de paquetes Con Shorewall usted
1 Identifica la zona origen (cliente)2 Identifica la zona destino (servidor)3 Si la POLITICA de la zona cliente a la zona servidor es lo que desea para esta pareja clienteservidor no
necesita hacer nada adicional4 Si la POLITICA no es lo que desea entonces debe agregar una regla La regla se expresa en teacuterminos de la
zona del cliente y de la zona del servidor
Soacutelo porque las conexiones de un tipo particular desde la zona A hacia el firewall estaacuten permitidas y que tambieacuten estaacuten permitidas desde el firewall a la zona B NO sigifica que estas conexiones esten permitidas entre la zona A y la zona B (en otras palabras las poliacuteticas y reglas que involucran a la zona firewall no son transitivas) A cambio significa que usted puede tener un proxy corriendo en el firewall que acepta conexiones desde la zona A y luego establece conexiones separadas por siacute mismo desde el firewall hacia la zona B
Para cada solicitud de conexioacuten que entra al firewall la solicitud se chequea primero contra el archivo etcshorewallrules Si ninguna regla del archivo aplica se aplica a la solicitud de conexioacuten la primera poliacutetica en etcshorewallpolicy que corresponda con dicha solicitud despueacutes de que haya pasado por la accioacuten comuacuten apropiada (si existe alguna)
Previo a Shorewall 220 el archivo por omisioacuten etcshorewallpolicy teniacutea las siguientes poliacuteticas
SOURCE ZONE DESTINATION ZONE POLICY LOG LIMITBURST LEVELloc net ACCEPTnet all DROP infoall all REJECT info
Importante
El archivo de poliacuteticas de la versioacuten actual estaacute vaciacuteo Usted puede copiar y pegar las entradas anteriores para crear un punto de partida para luego personalizar sus poliacuteticas
Las poliacuteticas anteriores haraacuten que
1 permitiraacute todas las solicitudes de conexiones desde la red local hacia internet2 descartaraacute (ignoraraacute) todas las solicitudes de conexiones desde internet hacia su firewall o red local y se
registra un mensaje a nivel informativo (info level log vea aquiacute la descripcioacuten de los niveles de registro)3 rechaza todas las solicitudes de conexiones y registra un mensaje a nivel informativo Cuando una solicitud
se rechaza el firewall devuelve un RST (si el protocolo es TCP) o un paquete ICMP de puerto-inalcanzabe para los otros protocolos
En este punto edite su archivo etcshorewallpolicy y haga los cambios que desee
Interfaces de Red
Para el resto de esta guiacutea nos referiremos al siguiente diagrama Si bien puede que no luzca como el de su red puede usarse para ilustrar los aspectos importantes de la configuracioacuten Shorewall
En este diagrama
bull La Zona DMZ consiste de los sistemas DMZ 1 y DMZ 2 Una DMZ se usa para aislar su servidors accesibles desde internet de sus sistemas locales tal que si uno de esos servidores estaacute comprometido auacuten tendraacute el firewall entre el sistema comprometido y sus sistemas en la red local
bull La Zona Local consiste de los sistemas Local 1 Local 2 y Local 3bull Todos los sistemas desde el ISP hacia afuera componen la Zona Internet
La forma maacutes cimple de definir zonas es asociar el nombre de la zona (previamente definida en etcshorewallzones) con una interface de red Esto se hace en el archivo etcshorewallinterfaces El firewall ilustrado arriba tiene tres interfaces de red Donde la conectividad hacia Internet es hecha a traveacutes de un cable Modem o DSL la Interface Externa seraacute un adaptador Ethernet que se ecneuntra conectado al Modem (eg eth0) a menos que conecte usando Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta usando un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces desearaacute establecer CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Local seraacute un adaptador Ethernet (eth0 eth1 o eth2) y conectaraacute a un hub o switch Sus computadores locales estaraacuten conectadas al mismo switch o hub (nota Si tiene un uacutenico sistema local puede conectar directamente el firewall al computador utilizando un cable cruzado)
Su Interface DMZ tambieacuten seraacute un adaptador Ethernet (eth0 eth1 o eth2) y se conectaraacute a un hub o switch Sus computadores DMZ seraacuten conectados al mismo switch o hub (nota Si tiene un uacutenico sistema DMZ puede conectar directamente el firewall al computador usando un cable cruzado)
Precaucioacuten
No conecte la interace interna y externa al mismo hub o switch exceptuando para pruebas Y estaacute corriendo Shorewall 147 o superior Cuando use estas versiones recientes puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en el archivo etcshorewallinterfaces para todas las interfaces conectadas al mismo hubswitch No se recomienda utilizar tal configuracioacuten con un firewall de produccioacuten
Para el resto de esta guiacutea asumiremos que
bull La Interface Externa es eth0bull La Interface Local es eth1bull La Interface DMZ es eth2
La cinfiguracioacuten Shorewall por omisioacuten no define el contenido de ninguna zona Para definir la configuracioacuten de arriba usando el archivo etcshorewallinterfaces dicho archivo contendriacutea
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectdmz eth2 detect
Note que la zona $FW no tiene una entrada en el archvio etcshorewallinterfaces
Edite el archivo etcshorewallinterfaces y defina las interfaces de red de su firewall asociadas con su zona Si tiene una zona disponible a traveacutes de maacutes de una interface de red simplemente incluya una entrada para cada interface y repita el nombre de zona tantas veces como haga falta con su respectiva interface de red
Ejemplo 1 Muacuteltiples Interfaces hacia una Zona
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectloc eth2 detect
Usted puede definir zonas maacutes complicadas usando el archivo etcshorewallhosts pero en la mayoriacutea de los casos ello no es necesario Vea Shorewall_and_Aliased_Interfaceshtml y Multiple_Zoneshtml para algunos ejemplos
Direccionamiento Subredes y Enrutamiento
Normalmente su ISP le asignaraacute un conjunto de direcciones IP Puacuteblicas Usted configuraraacute su interface externa de su firewall para que use una de dichas direcciones permanentemente y entonces tendraacute que decidir como usaraacute el resto de sus direcciones Antes de que contestemos esta pregunta es conveniente primero revisar los fundamentos
Si usted estaacute ampliamente familiarizado con el direccionamiento IP y el enrutamiento puede ir directo a la proacutexima seccioacuten
La siguiente discusioacuten revisa someramente el direccionamiento y el enrutamiento IP Si estaacute interesado en aprender maacutes acerca del tema le recomendaos ampliamente ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0
Direcciones IP
Las direcciones IP versioacuten 4 (IPv4) son nuacutemeros de 32 -bits La notacioacuten wxyz refiere a una direccioacuten donde el byte de orden superior tiene el valor ldquowrdquo el proacuteximo byte tiene el valor ldquoxrdquo etc Si tomamos la direccioacuten 1920214 y la expresamos en hexadecimal obtenemos
C000020E
o viacuteendolo como un entero de 32-bits
C000020E
Subredes
Usted comenzaraacute a escuchar los teacuterminos ldquored Clase Ardquo ldquored Clase B y red Clase C En los primeros diacuteas de IP las redes veniacutean en tres tamantildeos (existiacutea tambieacuten redes Clase D pero era usada de forma diferente)
Clase A - maacutescara de red 255000 size = 2 24Clase B - maacutescara de red 25525500 size = 2 16
Clase C - maacutescara de red 2552552550 size = 256
La clase de una red era determinada uniacutevocamente por el valor del byte superior de su direccioacuten tal que usted pudiera ver la direccioacuten IP e inmediatamente determinara la maacutescara asociada La maacutescara de red es un nuacutemero que cuando se aplica un Y loacutegico con la direccioacuten separa la direccioacuten de red del resto que es la direccioacuten de host Por ejemplo la direccioacuten Clase C 1920214 la direccioacuten de red es el hexadecimal C00002 y el nuacutemero de host es 0E
En la medida que internet crecioacute se hizo claro que tal particionamiento tan grueso de direcciones de 32-bits iva a ser muy limitante (iexclPreviamente a las grandes corporaciones y universidades le fueron asignadas sus propias redes clase A) Despueacutes de unos arranques en falso la teacutecnica de subredes evolucionoacute al sistema actual de redes maacutes pequentildeas la teacutecnica se le refiere como Classless InterDomain Routing (CIDR) Hoy diacutea cualquier sistema que usted probablemente use entenderaacute CIDR y las redes basadas en clases son ya algo del pasado
Una subred es un conjunto contiguo de direcciones IP tal que
1 La cantidad de direcciones en el conjunto es una potencia de 2 y2 La primera direccioacuten en el conjunto es un muacuteltiplo del tamantildeo del conjunto3 La primera direccioacuten en la subred se reserva y se le refiere como la direccioacuten de subred4 La uacutetima direccioacuten en la subred estaacute reservada como la direccioacuten de difusioacuten(broadcast) de la subred
Como puede ver por definicioacuten en cada subred de tamantildeo n hay (n - 2) direcciones utilizables (direcciones que se pueden asignar a maacutequinas) La primera y uacuteltima direccioacuten en la subred son utilizadas como direccioacuten de la subred y direccioacuten de difusioacuten respectivamente En consecuencia las subredes maacutes pequentildeas desperdician maacutes direcciones IP que las redes maacutes grandes
Ya que n es una potencia de dos faacutecilmente podemos calcular el Logaritmo-Base2 (log2) de n Para los tamantildeos maacutes comunes de subred el tamantildeo y su logaritmos base 2 son dados por la siguiente tabla
Tabla 1 Logaritmos Base-2
n log2 n (32 - log2 n)
8 3 29
16 4 28
32 5 27
64 6 26
128 7 25
256 8 24
512 9 23
1024 10 22
2048 11 21
4096 12 20
8192 13 19
16384 14 18
32768 15 17
65536 16 16
Notaraacute que la tabla arriba tambieacuten contiene una columna parar (32 - log2 n) Este nuacutemero es la Variable Length Subnet Mask (VLSM) para una red de tamantildeo n De la tabla arriba podemos derivar la siguiente que es un poco maacutes faacutecil de usar
Tabla 2 VLSM
Subnet Size VLSM Subnet Mask
8 29 255255255248
16 28 255255255240
32 27 255255255224
64 26 255255255192
128 25 255255255128
256 24 2552552550
512 23 2552552540
1024 22 2552552520
2048 21 2552552480
4096 20 2552552400
8192 19 2552552240
16384 18 2552551920
32768 17 2552551280
65536 16 25525500
2 24 8 255000
Note que la VLSM se escribe con barra (ldquordquo) -- a menudo escucharaacute de una subred de tamantildeo 64 referida como una subred ldquobarra 26rdquo y una de tamantildeo 8 referida como de ldquobarra 29rdquo
La maacutescara de subred es simplemente un nuacutemero de 32 bits con los primeros ldquoVLSMrdquo bits puestos a uno y los remanentes bits puestos a cero Por ejemplo para una subred de tamantildeo 64 la maacutescara de subred tiene los primeros 26 bits en uno
11111111111111111111111111000000 = FFFFFFC0 = FFFFFFC0 = 255255255192
La maacutescara de subred tiene la propiedad de que si se hace un Y loacutegico con una direccioacuten en la subred el resultado es la direccioacuten de la subred Igual de importante si hace un Y loacutegico de la maacutescara de subre con una direccioacuten fuera de la subred el resultado NO es la direccioacuten de la subred Como ya veremos esta propiedad de la maacutescara de subred es muy uacutetil para el enrutamiento
Para una subred cuya direccioacuten es abcd y cuyo Variable Length Subnet Mask es v denotamos la subred como ldquoabcdvrdquo usando Notacioacuten CIDR Ejemplo
Tabla 3 Subred
Subred 1010100 - 101010127
Tamantildeo Subred 128
Direccioacuten Subred 1010100
Direccioacuten Difusioacuten 101010127
Notacioacuten CIDR 101010025
Existen dos subredes degeneradas que merecen ser nombradas la subred con un miembro y la subre con 2 32 miembros
Tabla 4 32 y 0
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
Su nuevo arreglo de red luciraacute similar a la figura siguiente
La primera cosa notable es que las computadores en su red inalaacutembrica estan en una subred diferente a los de su red cableada en la LAN En el ejemplo de arriba hemos escogido usar la red 101011024 Las computadoras 3 y 4 seriacutean configuradas con la direccioacuten IP del default gateway IP a 101011254
Segundo hemos escogido incluir la red inalaacutembrica como parte de la zona local Ya que Shorewall permite el traacutefico en-la-zona por omisioacuten el traacutefico puede fluir libremente entre la red cableada local y la red inalaacutembrica
Hay soacutelo dos cambios necesarios para nuestra configuracioacuten Shorewall
bull Se necesita agregar una entrada a etcshorewallinterfaces para la interface de red inalaacutembrica Si la interface inalaacutembrica es wlan0 la entrada puede lucir asiacute
ZONE INTERFACE BROADCAST OPTIONSloc wlan0 detect maclist
Como se muestra en la entrada anterior se recomienda usar la opcioacuten maclist para el segmento inalaacutembrico En paralelo agregue las entradas para las computadoras 3 y 4 en etcshorewallmaclist para prevenir que sus vecinos obtengan una conexioacuten gratuita a internet a sus expensas Comience por omitir esta opcioacuten cuando tenga todo funcionando entonces agregue esta opcioacuten y configure su archivo etcshorewallmaclist
bull Usted necesita agregar una entrada al archivo etcshorewallmasq para enmascarar el traacutefico desde la red inalaacutembrica hacia internet Si su interface hacia internet es eth0 y su interface inalaacutembrica es wlan0 la entrada seriacutea asiacute
INTERFACE SUBNET ADDRESSeth0 wlan0
Otra cosa a notar para poner la red de Microsofttrade a funcionar entre las redes inalaacutembrica y cableada necesitaraacute ya sea un servidor WINS o un PDC Yo personalmente uso Samba configurado como servidor WINS corriendo en mi firewall Correr un servidor WINS en el firewall requiere las reglas que se listan en documentacioacuten ShorewallSamba
Guiacutea de Configuracioacuten de Shorewall
Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
Precaucioacuten
Este artiacuteculo aplica a Shorewall 30 en adelante Si estaacute corriendo una versioacuten previa de Shorewall 300 entonces por favor vea la documentacioacuten para dicha liberacioacuten
Introduccioacuten
Esta guiacutea estaacute destinada a los usuarios que desean configurar Shorewall en entornos donde un conjunto de direcciones IP puacuteblicas deben ser manejadas Para quienes desean conocer maacutes acerca de Shorewall en otros entornos revise las Guiacuteas Raacutepidas de Shorewall Debido a las amplias diferentes posibles aplicaciones la Guiacutea le daraacute directrices y apuntaraacute hacia otros recursos si ello es necesario
Precaucioacuten
Shorewall requiere el paquete iprouteiproute2 instalado (en RedHat el paquete se llama iproute) Usted puede saber si el paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando ldquowhichrdquo para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se recomienda que primero lea la guiacutea para que se familiarice con lo que estaacute involucrado y luego vuelva hacia atraacute y comience sobre los cambios de configuracioacuten requeridos Los puntos donde se recomiendan cambios de
configuracioacuten se sentildealan con
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windows usted debe salvarlos como archivos Unix si su editor soporta dicha opcioacuten o debe ejecutar dicho archivo con dos2unix antes de usarlo con Shorewall De forma similar si copia un archivo de configuracioacuten desde su disco duro en Windows a un disco flexible debe ejecutar previamente dos2unix contra la copia antes de usarla con Shorewall
bull Enlace a versioacuten Windows de dos2unix httpwwwsimtelnetpubpd51438html bull Enlace a versioacuten Linux de dos2unix httpwwwmegalomancom7Ehanysoftwarehd2u
Conceptos de Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall para la mayoriacutea de las configuraciones soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea El esqueleto de archivos de configuracioacuten es creado durante el Proceso de Instalacioacuten de Shorewall
Alerta
Nota para los Usuarios Debian
Si instala usando un deb encontraraacute que el directorio etcshorewall estaacute vaciacuteo Esto es intencional Los archivos del esqueleto correspondientes a la liberacioacuten correspondiente pueden encotrarse en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no los modifica
En la medida que introducimos cada archivo sugerimos que revise dicho archivo en su sistema cada archivo contiene instrucciones detalladas de configuracioacuten
Shorewall ve la red donde estaacute corriendo como si estuviera compuesta de un conjunto de zonas En esta guiacutea usaremos las siguientes zonas
fw
El propio sistema firewall
net
La red puacuteblica Internet
loc
La red local privada que usa direcciones IP privadas
dmz
Una Zona Desmilitarizada que aloja servidores de acceso puacuteblico
Las zonas se definen en el archivo etcshorewallzones
Importante
El archivo etcshorewallzones incluiacutedo en la distribucioacuten estaacute vaciacuteo Usted puede crear el conjunto de zonas estandar descritas anteriormente copiando y pegando el siguiente contenido en dicho archivo
ZONE TYPE OPTIONSfw firewallnet ipv4loc ipv4dmz ipv4
Note que Shorewall reconoce al sistema firewall como su propia zona El ejemplo anterior sigue la convencioacuten usual de nombres zona firewall fw El nombre especificado para la zona firewall (fw en el ejemplo anterior) se almacena en la variable shell $FW cuando se procesa el archivo etcshorewallzones Con la excepcioacuten del nombre asignado a la zona firewall Shorewall no asocia ninguacuten significado especial a los nombes de zona Las zonas son lo que USTED hace de ellas Ello significa que no debe esperar que Shorewall haga algo especial porque esta es la zona interna o porque esta es la zona DMZ
Edite el archivo etcshorewallzones y haga los cambios necesarios
La reglas acerca de queacute traacutefico permitir y negar se expresan en teacuterminos de las zonas
bull Usted expresa la poliacutetica por omisioacuten para conexiones desde una a otra zona en el archivo etcshorewallpolicy
bull Usted define excepciones a dichas poliacuteticas en etcshorewallrules
Shorewall se construye sobre el motor de kernel Netfilter Netfilter implementa la funcioacuten de seguimiento de conexiones que permite lo que se denomina como inspeccioacuten por estado (stateful inspection) de paquetes Esta capacidad de manejar los estados permite que las reglas de firewall sean definidas en teacuterminos de conexiones en vez de paquetes Con Shorewall usted
1 Identifica la zona origen (cliente)2 Identifica la zona destino (servidor)3 Si la POLITICA de la zona cliente a la zona servidor es lo que desea para esta pareja clienteservidor no
necesita hacer nada adicional4 Si la POLITICA no es lo que desea entonces debe agregar una regla La regla se expresa en teacuterminos de la
zona del cliente y de la zona del servidor
Soacutelo porque las conexiones de un tipo particular desde la zona A hacia el firewall estaacuten permitidas y que tambieacuten estaacuten permitidas desde el firewall a la zona B NO sigifica que estas conexiones esten permitidas entre la zona A y la zona B (en otras palabras las poliacuteticas y reglas que involucran a la zona firewall no son transitivas) A cambio significa que usted puede tener un proxy corriendo en el firewall que acepta conexiones desde la zona A y luego establece conexiones separadas por siacute mismo desde el firewall hacia la zona B
Para cada solicitud de conexioacuten que entra al firewall la solicitud se chequea primero contra el archivo etcshorewallrules Si ninguna regla del archivo aplica se aplica a la solicitud de conexioacuten la primera poliacutetica en etcshorewallpolicy que corresponda con dicha solicitud despueacutes de que haya pasado por la accioacuten comuacuten apropiada (si existe alguna)
Previo a Shorewall 220 el archivo por omisioacuten etcshorewallpolicy teniacutea las siguientes poliacuteticas
SOURCE ZONE DESTINATION ZONE POLICY LOG LIMITBURST LEVELloc net ACCEPTnet all DROP infoall all REJECT info
Importante
El archivo de poliacuteticas de la versioacuten actual estaacute vaciacuteo Usted puede copiar y pegar las entradas anteriores para crear un punto de partida para luego personalizar sus poliacuteticas
Las poliacuteticas anteriores haraacuten que
1 permitiraacute todas las solicitudes de conexiones desde la red local hacia internet2 descartaraacute (ignoraraacute) todas las solicitudes de conexiones desde internet hacia su firewall o red local y se
registra un mensaje a nivel informativo (info level log vea aquiacute la descripcioacuten de los niveles de registro)3 rechaza todas las solicitudes de conexiones y registra un mensaje a nivel informativo Cuando una solicitud
se rechaza el firewall devuelve un RST (si el protocolo es TCP) o un paquete ICMP de puerto-inalcanzabe para los otros protocolos
En este punto edite su archivo etcshorewallpolicy y haga los cambios que desee
Interfaces de Red
Para el resto de esta guiacutea nos referiremos al siguiente diagrama Si bien puede que no luzca como el de su red puede usarse para ilustrar los aspectos importantes de la configuracioacuten Shorewall
En este diagrama
bull La Zona DMZ consiste de los sistemas DMZ 1 y DMZ 2 Una DMZ se usa para aislar su servidors accesibles desde internet de sus sistemas locales tal que si uno de esos servidores estaacute comprometido auacuten tendraacute el firewall entre el sistema comprometido y sus sistemas en la red local
bull La Zona Local consiste de los sistemas Local 1 Local 2 y Local 3bull Todos los sistemas desde el ISP hacia afuera componen la Zona Internet
La forma maacutes cimple de definir zonas es asociar el nombre de la zona (previamente definida en etcshorewallzones) con una interface de red Esto se hace en el archivo etcshorewallinterfaces El firewall ilustrado arriba tiene tres interfaces de red Donde la conectividad hacia Internet es hecha a traveacutes de un cable Modem o DSL la Interface Externa seraacute un adaptador Ethernet que se ecneuntra conectado al Modem (eg eth0) a menos que conecte usando Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta usando un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces desearaacute establecer CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Local seraacute un adaptador Ethernet (eth0 eth1 o eth2) y conectaraacute a un hub o switch Sus computadores locales estaraacuten conectadas al mismo switch o hub (nota Si tiene un uacutenico sistema local puede conectar directamente el firewall al computador utilizando un cable cruzado)
Su Interface DMZ tambieacuten seraacute un adaptador Ethernet (eth0 eth1 o eth2) y se conectaraacute a un hub o switch Sus computadores DMZ seraacuten conectados al mismo switch o hub (nota Si tiene un uacutenico sistema DMZ puede conectar directamente el firewall al computador usando un cable cruzado)
Precaucioacuten
No conecte la interace interna y externa al mismo hub o switch exceptuando para pruebas Y estaacute corriendo Shorewall 147 o superior Cuando use estas versiones recientes puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en el archivo etcshorewallinterfaces para todas las interfaces conectadas al mismo hubswitch No se recomienda utilizar tal configuracioacuten con un firewall de produccioacuten
Para el resto de esta guiacutea asumiremos que
bull La Interface Externa es eth0bull La Interface Local es eth1bull La Interface DMZ es eth2
La cinfiguracioacuten Shorewall por omisioacuten no define el contenido de ninguna zona Para definir la configuracioacuten de arriba usando el archivo etcshorewallinterfaces dicho archivo contendriacutea
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectdmz eth2 detect
Note que la zona $FW no tiene una entrada en el archvio etcshorewallinterfaces
Edite el archivo etcshorewallinterfaces y defina las interfaces de red de su firewall asociadas con su zona Si tiene una zona disponible a traveacutes de maacutes de una interface de red simplemente incluya una entrada para cada interface y repita el nombre de zona tantas veces como haga falta con su respectiva interface de red
Ejemplo 1 Muacuteltiples Interfaces hacia una Zona
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectloc eth2 detect
Usted puede definir zonas maacutes complicadas usando el archivo etcshorewallhosts pero en la mayoriacutea de los casos ello no es necesario Vea Shorewall_and_Aliased_Interfaceshtml y Multiple_Zoneshtml para algunos ejemplos
Direccionamiento Subredes y Enrutamiento
Normalmente su ISP le asignaraacute un conjunto de direcciones IP Puacuteblicas Usted configuraraacute su interface externa de su firewall para que use una de dichas direcciones permanentemente y entonces tendraacute que decidir como usaraacute el resto de sus direcciones Antes de que contestemos esta pregunta es conveniente primero revisar los fundamentos
Si usted estaacute ampliamente familiarizado con el direccionamiento IP y el enrutamiento puede ir directo a la proacutexima seccioacuten
La siguiente discusioacuten revisa someramente el direccionamiento y el enrutamiento IP Si estaacute interesado en aprender maacutes acerca del tema le recomendaos ampliamente ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0
Direcciones IP
Las direcciones IP versioacuten 4 (IPv4) son nuacutemeros de 32 -bits La notacioacuten wxyz refiere a una direccioacuten donde el byte de orden superior tiene el valor ldquowrdquo el proacuteximo byte tiene el valor ldquoxrdquo etc Si tomamos la direccioacuten 1920214 y la expresamos en hexadecimal obtenemos
C000020E
o viacuteendolo como un entero de 32-bits
C000020E
Subredes
Usted comenzaraacute a escuchar los teacuterminos ldquored Clase Ardquo ldquored Clase B y red Clase C En los primeros diacuteas de IP las redes veniacutean en tres tamantildeos (existiacutea tambieacuten redes Clase D pero era usada de forma diferente)
Clase A - maacutescara de red 255000 size = 2 24Clase B - maacutescara de red 25525500 size = 2 16
Clase C - maacutescara de red 2552552550 size = 256
La clase de una red era determinada uniacutevocamente por el valor del byte superior de su direccioacuten tal que usted pudiera ver la direccioacuten IP e inmediatamente determinara la maacutescara asociada La maacutescara de red es un nuacutemero que cuando se aplica un Y loacutegico con la direccioacuten separa la direccioacuten de red del resto que es la direccioacuten de host Por ejemplo la direccioacuten Clase C 1920214 la direccioacuten de red es el hexadecimal C00002 y el nuacutemero de host es 0E
En la medida que internet crecioacute se hizo claro que tal particionamiento tan grueso de direcciones de 32-bits iva a ser muy limitante (iexclPreviamente a las grandes corporaciones y universidades le fueron asignadas sus propias redes clase A) Despueacutes de unos arranques en falso la teacutecnica de subredes evolucionoacute al sistema actual de redes maacutes pequentildeas la teacutecnica se le refiere como Classless InterDomain Routing (CIDR) Hoy diacutea cualquier sistema que usted probablemente use entenderaacute CIDR y las redes basadas en clases son ya algo del pasado
Una subred es un conjunto contiguo de direcciones IP tal que
1 La cantidad de direcciones en el conjunto es una potencia de 2 y2 La primera direccioacuten en el conjunto es un muacuteltiplo del tamantildeo del conjunto3 La primera direccioacuten en la subred se reserva y se le refiere como la direccioacuten de subred4 La uacutetima direccioacuten en la subred estaacute reservada como la direccioacuten de difusioacuten(broadcast) de la subred
Como puede ver por definicioacuten en cada subred de tamantildeo n hay (n - 2) direcciones utilizables (direcciones que se pueden asignar a maacutequinas) La primera y uacuteltima direccioacuten en la subred son utilizadas como direccioacuten de la subred y direccioacuten de difusioacuten respectivamente En consecuencia las subredes maacutes pequentildeas desperdician maacutes direcciones IP que las redes maacutes grandes
Ya que n es una potencia de dos faacutecilmente podemos calcular el Logaritmo-Base2 (log2) de n Para los tamantildeos maacutes comunes de subred el tamantildeo y su logaritmos base 2 son dados por la siguiente tabla
Tabla 1 Logaritmos Base-2
n log2 n (32 - log2 n)
8 3 29
16 4 28
32 5 27
64 6 26
128 7 25
256 8 24
512 9 23
1024 10 22
2048 11 21
4096 12 20
8192 13 19
16384 14 18
32768 15 17
65536 16 16
Notaraacute que la tabla arriba tambieacuten contiene una columna parar (32 - log2 n) Este nuacutemero es la Variable Length Subnet Mask (VLSM) para una red de tamantildeo n De la tabla arriba podemos derivar la siguiente que es un poco maacutes faacutecil de usar
Tabla 2 VLSM
Subnet Size VLSM Subnet Mask
8 29 255255255248
16 28 255255255240
32 27 255255255224
64 26 255255255192
128 25 255255255128
256 24 2552552550
512 23 2552552540
1024 22 2552552520
2048 21 2552552480
4096 20 2552552400
8192 19 2552552240
16384 18 2552551920
32768 17 2552551280
65536 16 25525500
2 24 8 255000
Note que la VLSM se escribe con barra (ldquordquo) -- a menudo escucharaacute de una subred de tamantildeo 64 referida como una subred ldquobarra 26rdquo y una de tamantildeo 8 referida como de ldquobarra 29rdquo
La maacutescara de subred es simplemente un nuacutemero de 32 bits con los primeros ldquoVLSMrdquo bits puestos a uno y los remanentes bits puestos a cero Por ejemplo para una subred de tamantildeo 64 la maacutescara de subred tiene los primeros 26 bits en uno
11111111111111111111111111000000 = FFFFFFC0 = FFFFFFC0 = 255255255192
La maacutescara de subred tiene la propiedad de que si se hace un Y loacutegico con una direccioacuten en la subred el resultado es la direccioacuten de la subred Igual de importante si hace un Y loacutegico de la maacutescara de subre con una direccioacuten fuera de la subred el resultado NO es la direccioacuten de la subred Como ya veremos esta propiedad de la maacutescara de subred es muy uacutetil para el enrutamiento
Para una subred cuya direccioacuten es abcd y cuyo Variable Length Subnet Mask es v denotamos la subred como ldquoabcdvrdquo usando Notacioacuten CIDR Ejemplo
Tabla 3 Subred
Subred 1010100 - 101010127
Tamantildeo Subred 128
Direccioacuten Subred 1010100
Direccioacuten Difusioacuten 101010127
Notacioacuten CIDR 101010025
Existen dos subredes degeneradas que merecen ser nombradas la subred con un miembro y la subre con 2 32 miembros
Tabla 4 32 y 0
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
Guiacutea de Configuracioacuten de Shorewall
Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
Precaucioacuten
Este artiacuteculo aplica a Shorewall 30 en adelante Si estaacute corriendo una versioacuten previa de Shorewall 300 entonces por favor vea la documentacioacuten para dicha liberacioacuten
Introduccioacuten
Esta guiacutea estaacute destinada a los usuarios que desean configurar Shorewall en entornos donde un conjunto de direcciones IP puacuteblicas deben ser manejadas Para quienes desean conocer maacutes acerca de Shorewall en otros entornos revise las Guiacuteas Raacutepidas de Shorewall Debido a las amplias diferentes posibles aplicaciones la Guiacutea le daraacute directrices y apuntaraacute hacia otros recursos si ello es necesario
Precaucioacuten
Shorewall requiere el paquete iprouteiproute2 instalado (en RedHat el paquete se llama iproute) Usted puede saber si el paquete estaacute instalado por la presencia del programa ip en su sistema firewall Como root puede usar el comando ldquowhichrdquo para verificar este programa
[rootgateway root] which ipsbinip[rootgateway root]
Se recomienda que primero lea la guiacutea para que se familiarice con lo que estaacute involucrado y luego vuelva hacia atraacute y comience sobre los cambios de configuracioacuten requeridos Los puntos donde se recomiendan cambios de
configuracioacuten se sentildealan con
Precaucioacuten
Si edita sus archivos de configuracioacuten en un sistema Windows usted debe salvarlos como archivos Unix si su editor soporta dicha opcioacuten o debe ejecutar dicho archivo con dos2unix antes de usarlo con Shorewall De forma similar si copia un archivo de configuracioacuten desde su disco duro en Windows a un disco flexible debe ejecutar previamente dos2unix contra la copia antes de usarla con Shorewall
bull Enlace a versioacuten Windows de dos2unix httpwwwsimtelnetpubpd51438html bull Enlace a versioacuten Linux de dos2unix httpwwwmegalomancom7Ehanysoftwarehd2u
Conceptos de Shorewall
Los archivos de configuracioacuten de Shorewall estaacuten en el directorio etcshorewall para la mayoriacutea de las configuraciones soacutelo necesitaraacute lidiar con algunos de ellos como se describe en esta guiacutea El esqueleto de archivos de configuracioacuten es creado durante el Proceso de Instalacioacuten de Shorewall
Alerta
Nota para los Usuarios Debian
Si instala usando un deb encontraraacute que el directorio etcshorewall estaacute vaciacuteo Esto es intencional Los archivos del esqueleto correspondientes a la liberacioacuten correspondiente pueden encotrarse en su sistema en el directorio usrsharedocshorewalldefault-config Simplemente copie los archivos que necesite desde ese directorio a etcshorewall y modifique las copias
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no los modifica
En la medida que introducimos cada archivo sugerimos que revise dicho archivo en su sistema cada archivo contiene instrucciones detalladas de configuracioacuten
Shorewall ve la red donde estaacute corriendo como si estuviera compuesta de un conjunto de zonas En esta guiacutea usaremos las siguientes zonas
fw
El propio sistema firewall
net
La red puacuteblica Internet
loc
La red local privada que usa direcciones IP privadas
dmz
Una Zona Desmilitarizada que aloja servidores de acceso puacuteblico
Las zonas se definen en el archivo etcshorewallzones
Importante
El archivo etcshorewallzones incluiacutedo en la distribucioacuten estaacute vaciacuteo Usted puede crear el conjunto de zonas estandar descritas anteriormente copiando y pegando el siguiente contenido en dicho archivo
ZONE TYPE OPTIONSfw firewallnet ipv4loc ipv4dmz ipv4
Note que Shorewall reconoce al sistema firewall como su propia zona El ejemplo anterior sigue la convencioacuten usual de nombres zona firewall fw El nombre especificado para la zona firewall (fw en el ejemplo anterior) se almacena en la variable shell $FW cuando se procesa el archivo etcshorewallzones Con la excepcioacuten del nombre asignado a la zona firewall Shorewall no asocia ninguacuten significado especial a los nombes de zona Las zonas son lo que USTED hace de ellas Ello significa que no debe esperar que Shorewall haga algo especial porque esta es la zona interna o porque esta es la zona DMZ
Edite el archivo etcshorewallzones y haga los cambios necesarios
La reglas acerca de queacute traacutefico permitir y negar se expresan en teacuterminos de las zonas
bull Usted expresa la poliacutetica por omisioacuten para conexiones desde una a otra zona en el archivo etcshorewallpolicy
bull Usted define excepciones a dichas poliacuteticas en etcshorewallrules
Shorewall se construye sobre el motor de kernel Netfilter Netfilter implementa la funcioacuten de seguimiento de conexiones que permite lo que se denomina como inspeccioacuten por estado (stateful inspection) de paquetes Esta capacidad de manejar los estados permite que las reglas de firewall sean definidas en teacuterminos de conexiones en vez de paquetes Con Shorewall usted
1 Identifica la zona origen (cliente)2 Identifica la zona destino (servidor)3 Si la POLITICA de la zona cliente a la zona servidor es lo que desea para esta pareja clienteservidor no
necesita hacer nada adicional4 Si la POLITICA no es lo que desea entonces debe agregar una regla La regla se expresa en teacuterminos de la
zona del cliente y de la zona del servidor
Soacutelo porque las conexiones de un tipo particular desde la zona A hacia el firewall estaacuten permitidas y que tambieacuten estaacuten permitidas desde el firewall a la zona B NO sigifica que estas conexiones esten permitidas entre la zona A y la zona B (en otras palabras las poliacuteticas y reglas que involucran a la zona firewall no son transitivas) A cambio significa que usted puede tener un proxy corriendo en el firewall que acepta conexiones desde la zona A y luego establece conexiones separadas por siacute mismo desde el firewall hacia la zona B
Para cada solicitud de conexioacuten que entra al firewall la solicitud se chequea primero contra el archivo etcshorewallrules Si ninguna regla del archivo aplica se aplica a la solicitud de conexioacuten la primera poliacutetica en etcshorewallpolicy que corresponda con dicha solicitud despueacutes de que haya pasado por la accioacuten comuacuten apropiada (si existe alguna)
Previo a Shorewall 220 el archivo por omisioacuten etcshorewallpolicy teniacutea las siguientes poliacuteticas
SOURCE ZONE DESTINATION ZONE POLICY LOG LIMITBURST LEVELloc net ACCEPTnet all DROP infoall all REJECT info
Importante
El archivo de poliacuteticas de la versioacuten actual estaacute vaciacuteo Usted puede copiar y pegar las entradas anteriores para crear un punto de partida para luego personalizar sus poliacuteticas
Las poliacuteticas anteriores haraacuten que
1 permitiraacute todas las solicitudes de conexiones desde la red local hacia internet2 descartaraacute (ignoraraacute) todas las solicitudes de conexiones desde internet hacia su firewall o red local y se
registra un mensaje a nivel informativo (info level log vea aquiacute la descripcioacuten de los niveles de registro)3 rechaza todas las solicitudes de conexiones y registra un mensaje a nivel informativo Cuando una solicitud
se rechaza el firewall devuelve un RST (si el protocolo es TCP) o un paquete ICMP de puerto-inalcanzabe para los otros protocolos
En este punto edite su archivo etcshorewallpolicy y haga los cambios que desee
Interfaces de Red
Para el resto de esta guiacutea nos referiremos al siguiente diagrama Si bien puede que no luzca como el de su red puede usarse para ilustrar los aspectos importantes de la configuracioacuten Shorewall
En este diagrama
bull La Zona DMZ consiste de los sistemas DMZ 1 y DMZ 2 Una DMZ se usa para aislar su servidors accesibles desde internet de sus sistemas locales tal que si uno de esos servidores estaacute comprometido auacuten tendraacute el firewall entre el sistema comprometido y sus sistemas en la red local
bull La Zona Local consiste de los sistemas Local 1 Local 2 y Local 3bull Todos los sistemas desde el ISP hacia afuera componen la Zona Internet
La forma maacutes cimple de definir zonas es asociar el nombre de la zona (previamente definida en etcshorewallzones) con una interface de red Esto se hace en el archivo etcshorewallinterfaces El firewall ilustrado arriba tiene tres interfaces de red Donde la conectividad hacia Internet es hecha a traveacutes de un cable Modem o DSL la Interface Externa seraacute un adaptador Ethernet que se ecneuntra conectado al Modem (eg eth0) a menos que conecte usando Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta usando un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces desearaacute establecer CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Local seraacute un adaptador Ethernet (eth0 eth1 o eth2) y conectaraacute a un hub o switch Sus computadores locales estaraacuten conectadas al mismo switch o hub (nota Si tiene un uacutenico sistema local puede conectar directamente el firewall al computador utilizando un cable cruzado)
Su Interface DMZ tambieacuten seraacute un adaptador Ethernet (eth0 eth1 o eth2) y se conectaraacute a un hub o switch Sus computadores DMZ seraacuten conectados al mismo switch o hub (nota Si tiene un uacutenico sistema DMZ puede conectar directamente el firewall al computador usando un cable cruzado)
Precaucioacuten
No conecte la interace interna y externa al mismo hub o switch exceptuando para pruebas Y estaacute corriendo Shorewall 147 o superior Cuando use estas versiones recientes puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en el archivo etcshorewallinterfaces para todas las interfaces conectadas al mismo hubswitch No se recomienda utilizar tal configuracioacuten con un firewall de produccioacuten
Para el resto de esta guiacutea asumiremos que
bull La Interface Externa es eth0bull La Interface Local es eth1bull La Interface DMZ es eth2
La cinfiguracioacuten Shorewall por omisioacuten no define el contenido de ninguna zona Para definir la configuracioacuten de arriba usando el archivo etcshorewallinterfaces dicho archivo contendriacutea
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectdmz eth2 detect
Note que la zona $FW no tiene una entrada en el archvio etcshorewallinterfaces
Edite el archivo etcshorewallinterfaces y defina las interfaces de red de su firewall asociadas con su zona Si tiene una zona disponible a traveacutes de maacutes de una interface de red simplemente incluya una entrada para cada interface y repita el nombre de zona tantas veces como haga falta con su respectiva interface de red
Ejemplo 1 Muacuteltiples Interfaces hacia una Zona
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectloc eth2 detect
Usted puede definir zonas maacutes complicadas usando el archivo etcshorewallhosts pero en la mayoriacutea de los casos ello no es necesario Vea Shorewall_and_Aliased_Interfaceshtml y Multiple_Zoneshtml para algunos ejemplos
Direccionamiento Subredes y Enrutamiento
Normalmente su ISP le asignaraacute un conjunto de direcciones IP Puacuteblicas Usted configuraraacute su interface externa de su firewall para que use una de dichas direcciones permanentemente y entonces tendraacute que decidir como usaraacute el resto de sus direcciones Antes de que contestemos esta pregunta es conveniente primero revisar los fundamentos
Si usted estaacute ampliamente familiarizado con el direccionamiento IP y el enrutamiento puede ir directo a la proacutexima seccioacuten
La siguiente discusioacuten revisa someramente el direccionamiento y el enrutamiento IP Si estaacute interesado en aprender maacutes acerca del tema le recomendaos ampliamente ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0
Direcciones IP
Las direcciones IP versioacuten 4 (IPv4) son nuacutemeros de 32 -bits La notacioacuten wxyz refiere a una direccioacuten donde el byte de orden superior tiene el valor ldquowrdquo el proacuteximo byte tiene el valor ldquoxrdquo etc Si tomamos la direccioacuten 1920214 y la expresamos en hexadecimal obtenemos
C000020E
o viacuteendolo como un entero de 32-bits
C000020E
Subredes
Usted comenzaraacute a escuchar los teacuterminos ldquored Clase Ardquo ldquored Clase B y red Clase C En los primeros diacuteas de IP las redes veniacutean en tres tamantildeos (existiacutea tambieacuten redes Clase D pero era usada de forma diferente)
Clase A - maacutescara de red 255000 size = 2 24Clase B - maacutescara de red 25525500 size = 2 16
Clase C - maacutescara de red 2552552550 size = 256
La clase de una red era determinada uniacutevocamente por el valor del byte superior de su direccioacuten tal que usted pudiera ver la direccioacuten IP e inmediatamente determinara la maacutescara asociada La maacutescara de red es un nuacutemero que cuando se aplica un Y loacutegico con la direccioacuten separa la direccioacuten de red del resto que es la direccioacuten de host Por ejemplo la direccioacuten Clase C 1920214 la direccioacuten de red es el hexadecimal C00002 y el nuacutemero de host es 0E
En la medida que internet crecioacute se hizo claro que tal particionamiento tan grueso de direcciones de 32-bits iva a ser muy limitante (iexclPreviamente a las grandes corporaciones y universidades le fueron asignadas sus propias redes clase A) Despueacutes de unos arranques en falso la teacutecnica de subredes evolucionoacute al sistema actual de redes maacutes pequentildeas la teacutecnica se le refiere como Classless InterDomain Routing (CIDR) Hoy diacutea cualquier sistema que usted probablemente use entenderaacute CIDR y las redes basadas en clases son ya algo del pasado
Una subred es un conjunto contiguo de direcciones IP tal que
1 La cantidad de direcciones en el conjunto es una potencia de 2 y2 La primera direccioacuten en el conjunto es un muacuteltiplo del tamantildeo del conjunto3 La primera direccioacuten en la subred se reserva y se le refiere como la direccioacuten de subred4 La uacutetima direccioacuten en la subred estaacute reservada como la direccioacuten de difusioacuten(broadcast) de la subred
Como puede ver por definicioacuten en cada subred de tamantildeo n hay (n - 2) direcciones utilizables (direcciones que se pueden asignar a maacutequinas) La primera y uacuteltima direccioacuten en la subred son utilizadas como direccioacuten de la subred y direccioacuten de difusioacuten respectivamente En consecuencia las subredes maacutes pequentildeas desperdician maacutes direcciones IP que las redes maacutes grandes
Ya que n es una potencia de dos faacutecilmente podemos calcular el Logaritmo-Base2 (log2) de n Para los tamantildeos maacutes comunes de subred el tamantildeo y su logaritmos base 2 son dados por la siguiente tabla
Tabla 1 Logaritmos Base-2
n log2 n (32 - log2 n)
8 3 29
16 4 28
32 5 27
64 6 26
128 7 25
256 8 24
512 9 23
1024 10 22
2048 11 21
4096 12 20
8192 13 19
16384 14 18
32768 15 17
65536 16 16
Notaraacute que la tabla arriba tambieacuten contiene una columna parar (32 - log2 n) Este nuacutemero es la Variable Length Subnet Mask (VLSM) para una red de tamantildeo n De la tabla arriba podemos derivar la siguiente que es un poco maacutes faacutecil de usar
Tabla 2 VLSM
Subnet Size VLSM Subnet Mask
8 29 255255255248
16 28 255255255240
32 27 255255255224
64 26 255255255192
128 25 255255255128
256 24 2552552550
512 23 2552552540
1024 22 2552552520
2048 21 2552552480
4096 20 2552552400
8192 19 2552552240
16384 18 2552551920
32768 17 2552551280
65536 16 25525500
2 24 8 255000
Note que la VLSM se escribe con barra (ldquordquo) -- a menudo escucharaacute de una subred de tamantildeo 64 referida como una subred ldquobarra 26rdquo y una de tamantildeo 8 referida como de ldquobarra 29rdquo
La maacutescara de subred es simplemente un nuacutemero de 32 bits con los primeros ldquoVLSMrdquo bits puestos a uno y los remanentes bits puestos a cero Por ejemplo para una subred de tamantildeo 64 la maacutescara de subred tiene los primeros 26 bits en uno
11111111111111111111111111000000 = FFFFFFC0 = FFFFFFC0 = 255255255192
La maacutescara de subred tiene la propiedad de que si se hace un Y loacutegico con una direccioacuten en la subred el resultado es la direccioacuten de la subred Igual de importante si hace un Y loacutegico de la maacutescara de subre con una direccioacuten fuera de la subred el resultado NO es la direccioacuten de la subred Como ya veremos esta propiedad de la maacutescara de subred es muy uacutetil para el enrutamiento
Para una subred cuya direccioacuten es abcd y cuyo Variable Length Subnet Mask es v denotamos la subred como ldquoabcdvrdquo usando Notacioacuten CIDR Ejemplo
Tabla 3 Subred
Subred 1010100 - 101010127
Tamantildeo Subred 128
Direccioacuten Subred 1010100
Direccioacuten Difusioacuten 101010127
Notacioacuten CIDR 101010025
Existen dos subredes degeneradas que merecen ser nombradas la subred con un miembro y la subre con 2 32 miembros
Tabla 4 32 y 0
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
Note que debe copiar usrsharedocshorewalldefault-configshorewallconf y usrsharedocshorewalldefault-configmodules a etcshorewall incluso si no los modifica
En la medida que introducimos cada archivo sugerimos que revise dicho archivo en su sistema cada archivo contiene instrucciones detalladas de configuracioacuten
Shorewall ve la red donde estaacute corriendo como si estuviera compuesta de un conjunto de zonas En esta guiacutea usaremos las siguientes zonas
fw
El propio sistema firewall
net
La red puacuteblica Internet
loc
La red local privada que usa direcciones IP privadas
dmz
Una Zona Desmilitarizada que aloja servidores de acceso puacuteblico
Las zonas se definen en el archivo etcshorewallzones
Importante
El archivo etcshorewallzones incluiacutedo en la distribucioacuten estaacute vaciacuteo Usted puede crear el conjunto de zonas estandar descritas anteriormente copiando y pegando el siguiente contenido en dicho archivo
ZONE TYPE OPTIONSfw firewallnet ipv4loc ipv4dmz ipv4
Note que Shorewall reconoce al sistema firewall como su propia zona El ejemplo anterior sigue la convencioacuten usual de nombres zona firewall fw El nombre especificado para la zona firewall (fw en el ejemplo anterior) se almacena en la variable shell $FW cuando se procesa el archivo etcshorewallzones Con la excepcioacuten del nombre asignado a la zona firewall Shorewall no asocia ninguacuten significado especial a los nombes de zona Las zonas son lo que USTED hace de ellas Ello significa que no debe esperar que Shorewall haga algo especial porque esta es la zona interna o porque esta es la zona DMZ
Edite el archivo etcshorewallzones y haga los cambios necesarios
La reglas acerca de queacute traacutefico permitir y negar se expresan en teacuterminos de las zonas
bull Usted expresa la poliacutetica por omisioacuten para conexiones desde una a otra zona en el archivo etcshorewallpolicy
bull Usted define excepciones a dichas poliacuteticas en etcshorewallrules
Shorewall se construye sobre el motor de kernel Netfilter Netfilter implementa la funcioacuten de seguimiento de conexiones que permite lo que se denomina como inspeccioacuten por estado (stateful inspection) de paquetes Esta capacidad de manejar los estados permite que las reglas de firewall sean definidas en teacuterminos de conexiones en vez de paquetes Con Shorewall usted
1 Identifica la zona origen (cliente)2 Identifica la zona destino (servidor)3 Si la POLITICA de la zona cliente a la zona servidor es lo que desea para esta pareja clienteservidor no
necesita hacer nada adicional4 Si la POLITICA no es lo que desea entonces debe agregar una regla La regla se expresa en teacuterminos de la
zona del cliente y de la zona del servidor
Soacutelo porque las conexiones de un tipo particular desde la zona A hacia el firewall estaacuten permitidas y que tambieacuten estaacuten permitidas desde el firewall a la zona B NO sigifica que estas conexiones esten permitidas entre la zona A y la zona B (en otras palabras las poliacuteticas y reglas que involucran a la zona firewall no son transitivas) A cambio significa que usted puede tener un proxy corriendo en el firewall que acepta conexiones desde la zona A y luego establece conexiones separadas por siacute mismo desde el firewall hacia la zona B
Para cada solicitud de conexioacuten que entra al firewall la solicitud se chequea primero contra el archivo etcshorewallrules Si ninguna regla del archivo aplica se aplica a la solicitud de conexioacuten la primera poliacutetica en etcshorewallpolicy que corresponda con dicha solicitud despueacutes de que haya pasado por la accioacuten comuacuten apropiada (si existe alguna)
Previo a Shorewall 220 el archivo por omisioacuten etcshorewallpolicy teniacutea las siguientes poliacuteticas
SOURCE ZONE DESTINATION ZONE POLICY LOG LIMITBURST LEVELloc net ACCEPTnet all DROP infoall all REJECT info
Importante
El archivo de poliacuteticas de la versioacuten actual estaacute vaciacuteo Usted puede copiar y pegar las entradas anteriores para crear un punto de partida para luego personalizar sus poliacuteticas
Las poliacuteticas anteriores haraacuten que
1 permitiraacute todas las solicitudes de conexiones desde la red local hacia internet2 descartaraacute (ignoraraacute) todas las solicitudes de conexiones desde internet hacia su firewall o red local y se
registra un mensaje a nivel informativo (info level log vea aquiacute la descripcioacuten de los niveles de registro)3 rechaza todas las solicitudes de conexiones y registra un mensaje a nivel informativo Cuando una solicitud
se rechaza el firewall devuelve un RST (si el protocolo es TCP) o un paquete ICMP de puerto-inalcanzabe para los otros protocolos
En este punto edite su archivo etcshorewallpolicy y haga los cambios que desee
Interfaces de Red
Para el resto de esta guiacutea nos referiremos al siguiente diagrama Si bien puede que no luzca como el de su red puede usarse para ilustrar los aspectos importantes de la configuracioacuten Shorewall
En este diagrama
bull La Zona DMZ consiste de los sistemas DMZ 1 y DMZ 2 Una DMZ se usa para aislar su servidors accesibles desde internet de sus sistemas locales tal que si uno de esos servidores estaacute comprometido auacuten tendraacute el firewall entre el sistema comprometido y sus sistemas en la red local
bull La Zona Local consiste de los sistemas Local 1 Local 2 y Local 3bull Todos los sistemas desde el ISP hacia afuera componen la Zona Internet
La forma maacutes cimple de definir zonas es asociar el nombre de la zona (previamente definida en etcshorewallzones) con una interface de red Esto se hace en el archivo etcshorewallinterfaces El firewall ilustrado arriba tiene tres interfaces de red Donde la conectividad hacia Internet es hecha a traveacutes de un cable Modem o DSL la Interface Externa seraacute un adaptador Ethernet que se ecneuntra conectado al Modem (eg eth0) a menos que conecte usando Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta usando un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces desearaacute establecer CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Local seraacute un adaptador Ethernet (eth0 eth1 o eth2) y conectaraacute a un hub o switch Sus computadores locales estaraacuten conectadas al mismo switch o hub (nota Si tiene un uacutenico sistema local puede conectar directamente el firewall al computador utilizando un cable cruzado)
Su Interface DMZ tambieacuten seraacute un adaptador Ethernet (eth0 eth1 o eth2) y se conectaraacute a un hub o switch Sus computadores DMZ seraacuten conectados al mismo switch o hub (nota Si tiene un uacutenico sistema DMZ puede conectar directamente el firewall al computador usando un cable cruzado)
Precaucioacuten
No conecte la interace interna y externa al mismo hub o switch exceptuando para pruebas Y estaacute corriendo Shorewall 147 o superior Cuando use estas versiones recientes puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en el archivo etcshorewallinterfaces para todas las interfaces conectadas al mismo hubswitch No se recomienda utilizar tal configuracioacuten con un firewall de produccioacuten
Para el resto de esta guiacutea asumiremos que
bull La Interface Externa es eth0bull La Interface Local es eth1bull La Interface DMZ es eth2
La cinfiguracioacuten Shorewall por omisioacuten no define el contenido de ninguna zona Para definir la configuracioacuten de arriba usando el archivo etcshorewallinterfaces dicho archivo contendriacutea
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectdmz eth2 detect
Note que la zona $FW no tiene una entrada en el archvio etcshorewallinterfaces
Edite el archivo etcshorewallinterfaces y defina las interfaces de red de su firewall asociadas con su zona Si tiene una zona disponible a traveacutes de maacutes de una interface de red simplemente incluya una entrada para cada interface y repita el nombre de zona tantas veces como haga falta con su respectiva interface de red
Ejemplo 1 Muacuteltiples Interfaces hacia una Zona
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectloc eth2 detect
Usted puede definir zonas maacutes complicadas usando el archivo etcshorewallhosts pero en la mayoriacutea de los casos ello no es necesario Vea Shorewall_and_Aliased_Interfaceshtml y Multiple_Zoneshtml para algunos ejemplos
Direccionamiento Subredes y Enrutamiento
Normalmente su ISP le asignaraacute un conjunto de direcciones IP Puacuteblicas Usted configuraraacute su interface externa de su firewall para que use una de dichas direcciones permanentemente y entonces tendraacute que decidir como usaraacute el resto de sus direcciones Antes de que contestemos esta pregunta es conveniente primero revisar los fundamentos
Si usted estaacute ampliamente familiarizado con el direccionamiento IP y el enrutamiento puede ir directo a la proacutexima seccioacuten
La siguiente discusioacuten revisa someramente el direccionamiento y el enrutamiento IP Si estaacute interesado en aprender maacutes acerca del tema le recomendaos ampliamente ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0
Direcciones IP
Las direcciones IP versioacuten 4 (IPv4) son nuacutemeros de 32 -bits La notacioacuten wxyz refiere a una direccioacuten donde el byte de orden superior tiene el valor ldquowrdquo el proacuteximo byte tiene el valor ldquoxrdquo etc Si tomamos la direccioacuten 1920214 y la expresamos en hexadecimal obtenemos
C000020E
o viacuteendolo como un entero de 32-bits
C000020E
Subredes
Usted comenzaraacute a escuchar los teacuterminos ldquored Clase Ardquo ldquored Clase B y red Clase C En los primeros diacuteas de IP las redes veniacutean en tres tamantildeos (existiacutea tambieacuten redes Clase D pero era usada de forma diferente)
Clase A - maacutescara de red 255000 size = 2 24Clase B - maacutescara de red 25525500 size = 2 16
Clase C - maacutescara de red 2552552550 size = 256
La clase de una red era determinada uniacutevocamente por el valor del byte superior de su direccioacuten tal que usted pudiera ver la direccioacuten IP e inmediatamente determinara la maacutescara asociada La maacutescara de red es un nuacutemero que cuando se aplica un Y loacutegico con la direccioacuten separa la direccioacuten de red del resto que es la direccioacuten de host Por ejemplo la direccioacuten Clase C 1920214 la direccioacuten de red es el hexadecimal C00002 y el nuacutemero de host es 0E
En la medida que internet crecioacute se hizo claro que tal particionamiento tan grueso de direcciones de 32-bits iva a ser muy limitante (iexclPreviamente a las grandes corporaciones y universidades le fueron asignadas sus propias redes clase A) Despueacutes de unos arranques en falso la teacutecnica de subredes evolucionoacute al sistema actual de redes maacutes pequentildeas la teacutecnica se le refiere como Classless InterDomain Routing (CIDR) Hoy diacutea cualquier sistema que usted probablemente use entenderaacute CIDR y las redes basadas en clases son ya algo del pasado
Una subred es un conjunto contiguo de direcciones IP tal que
1 La cantidad de direcciones en el conjunto es una potencia de 2 y2 La primera direccioacuten en el conjunto es un muacuteltiplo del tamantildeo del conjunto3 La primera direccioacuten en la subred se reserva y se le refiere como la direccioacuten de subred4 La uacutetima direccioacuten en la subred estaacute reservada como la direccioacuten de difusioacuten(broadcast) de la subred
Como puede ver por definicioacuten en cada subred de tamantildeo n hay (n - 2) direcciones utilizables (direcciones que se pueden asignar a maacutequinas) La primera y uacuteltima direccioacuten en la subred son utilizadas como direccioacuten de la subred y direccioacuten de difusioacuten respectivamente En consecuencia las subredes maacutes pequentildeas desperdician maacutes direcciones IP que las redes maacutes grandes
Ya que n es una potencia de dos faacutecilmente podemos calcular el Logaritmo-Base2 (log2) de n Para los tamantildeos maacutes comunes de subred el tamantildeo y su logaritmos base 2 son dados por la siguiente tabla
Tabla 1 Logaritmos Base-2
n log2 n (32 - log2 n)
8 3 29
16 4 28
32 5 27
64 6 26
128 7 25
256 8 24
512 9 23
1024 10 22
2048 11 21
4096 12 20
8192 13 19
16384 14 18
32768 15 17
65536 16 16
Notaraacute que la tabla arriba tambieacuten contiene una columna parar (32 - log2 n) Este nuacutemero es la Variable Length Subnet Mask (VLSM) para una red de tamantildeo n De la tabla arriba podemos derivar la siguiente que es un poco maacutes faacutecil de usar
Tabla 2 VLSM
Subnet Size VLSM Subnet Mask
8 29 255255255248
16 28 255255255240
32 27 255255255224
64 26 255255255192
128 25 255255255128
256 24 2552552550
512 23 2552552540
1024 22 2552552520
2048 21 2552552480
4096 20 2552552400
8192 19 2552552240
16384 18 2552551920
32768 17 2552551280
65536 16 25525500
2 24 8 255000
Note que la VLSM se escribe con barra (ldquordquo) -- a menudo escucharaacute de una subred de tamantildeo 64 referida como una subred ldquobarra 26rdquo y una de tamantildeo 8 referida como de ldquobarra 29rdquo
La maacutescara de subred es simplemente un nuacutemero de 32 bits con los primeros ldquoVLSMrdquo bits puestos a uno y los remanentes bits puestos a cero Por ejemplo para una subred de tamantildeo 64 la maacutescara de subred tiene los primeros 26 bits en uno
11111111111111111111111111000000 = FFFFFFC0 = FFFFFFC0 = 255255255192
La maacutescara de subred tiene la propiedad de que si se hace un Y loacutegico con una direccioacuten en la subred el resultado es la direccioacuten de la subred Igual de importante si hace un Y loacutegico de la maacutescara de subre con una direccioacuten fuera de la subred el resultado NO es la direccioacuten de la subred Como ya veremos esta propiedad de la maacutescara de subred es muy uacutetil para el enrutamiento
Para una subred cuya direccioacuten es abcd y cuyo Variable Length Subnet Mask es v denotamos la subred como ldquoabcdvrdquo usando Notacioacuten CIDR Ejemplo
Tabla 3 Subred
Subred 1010100 - 101010127
Tamantildeo Subred 128
Direccioacuten Subred 1010100
Direccioacuten Difusioacuten 101010127
Notacioacuten CIDR 101010025
Existen dos subredes degeneradas que merecen ser nombradas la subred con un miembro y la subre con 2 32 miembros
Tabla 4 32 y 0
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
1 Identifica la zona origen (cliente)2 Identifica la zona destino (servidor)3 Si la POLITICA de la zona cliente a la zona servidor es lo que desea para esta pareja clienteservidor no
necesita hacer nada adicional4 Si la POLITICA no es lo que desea entonces debe agregar una regla La regla se expresa en teacuterminos de la
zona del cliente y de la zona del servidor
Soacutelo porque las conexiones de un tipo particular desde la zona A hacia el firewall estaacuten permitidas y que tambieacuten estaacuten permitidas desde el firewall a la zona B NO sigifica que estas conexiones esten permitidas entre la zona A y la zona B (en otras palabras las poliacuteticas y reglas que involucran a la zona firewall no son transitivas) A cambio significa que usted puede tener un proxy corriendo en el firewall que acepta conexiones desde la zona A y luego establece conexiones separadas por siacute mismo desde el firewall hacia la zona B
Para cada solicitud de conexioacuten que entra al firewall la solicitud se chequea primero contra el archivo etcshorewallrules Si ninguna regla del archivo aplica se aplica a la solicitud de conexioacuten la primera poliacutetica en etcshorewallpolicy que corresponda con dicha solicitud despueacutes de que haya pasado por la accioacuten comuacuten apropiada (si existe alguna)
Previo a Shorewall 220 el archivo por omisioacuten etcshorewallpolicy teniacutea las siguientes poliacuteticas
SOURCE ZONE DESTINATION ZONE POLICY LOG LIMITBURST LEVELloc net ACCEPTnet all DROP infoall all REJECT info
Importante
El archivo de poliacuteticas de la versioacuten actual estaacute vaciacuteo Usted puede copiar y pegar las entradas anteriores para crear un punto de partida para luego personalizar sus poliacuteticas
Las poliacuteticas anteriores haraacuten que
1 permitiraacute todas las solicitudes de conexiones desde la red local hacia internet2 descartaraacute (ignoraraacute) todas las solicitudes de conexiones desde internet hacia su firewall o red local y se
registra un mensaje a nivel informativo (info level log vea aquiacute la descripcioacuten de los niveles de registro)3 rechaza todas las solicitudes de conexiones y registra un mensaje a nivel informativo Cuando una solicitud
se rechaza el firewall devuelve un RST (si el protocolo es TCP) o un paquete ICMP de puerto-inalcanzabe para los otros protocolos
En este punto edite su archivo etcshorewallpolicy y haga los cambios que desee
Interfaces de Red
Para el resto de esta guiacutea nos referiremos al siguiente diagrama Si bien puede que no luzca como el de su red puede usarse para ilustrar los aspectos importantes de la configuracioacuten Shorewall
En este diagrama
bull La Zona DMZ consiste de los sistemas DMZ 1 y DMZ 2 Una DMZ se usa para aislar su servidors accesibles desde internet de sus sistemas locales tal que si uno de esos servidores estaacute comprometido auacuten tendraacute el firewall entre el sistema comprometido y sus sistemas en la red local
bull La Zona Local consiste de los sistemas Local 1 Local 2 y Local 3bull Todos los sistemas desde el ISP hacia afuera componen la Zona Internet
La forma maacutes cimple de definir zonas es asociar el nombre de la zona (previamente definida en etcshorewallzones) con una interface de red Esto se hace en el archivo etcshorewallinterfaces El firewall ilustrado arriba tiene tres interfaces de red Donde la conectividad hacia Internet es hecha a traveacutes de un cable Modem o DSL la Interface Externa seraacute un adaptador Ethernet que se ecneuntra conectado al Modem (eg eth0) a menos que conecte usando Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta usando un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces desearaacute establecer CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Local seraacute un adaptador Ethernet (eth0 eth1 o eth2) y conectaraacute a un hub o switch Sus computadores locales estaraacuten conectadas al mismo switch o hub (nota Si tiene un uacutenico sistema local puede conectar directamente el firewall al computador utilizando un cable cruzado)
Su Interface DMZ tambieacuten seraacute un adaptador Ethernet (eth0 eth1 o eth2) y se conectaraacute a un hub o switch Sus computadores DMZ seraacuten conectados al mismo switch o hub (nota Si tiene un uacutenico sistema DMZ puede conectar directamente el firewall al computador usando un cable cruzado)
Precaucioacuten
No conecte la interace interna y externa al mismo hub o switch exceptuando para pruebas Y estaacute corriendo Shorewall 147 o superior Cuando use estas versiones recientes puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en el archivo etcshorewallinterfaces para todas las interfaces conectadas al mismo hubswitch No se recomienda utilizar tal configuracioacuten con un firewall de produccioacuten
Para el resto de esta guiacutea asumiremos que
bull La Interface Externa es eth0bull La Interface Local es eth1bull La Interface DMZ es eth2
La cinfiguracioacuten Shorewall por omisioacuten no define el contenido de ninguna zona Para definir la configuracioacuten de arriba usando el archivo etcshorewallinterfaces dicho archivo contendriacutea
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectdmz eth2 detect
Note que la zona $FW no tiene una entrada en el archvio etcshorewallinterfaces
Edite el archivo etcshorewallinterfaces y defina las interfaces de red de su firewall asociadas con su zona Si tiene una zona disponible a traveacutes de maacutes de una interface de red simplemente incluya una entrada para cada interface y repita el nombre de zona tantas veces como haga falta con su respectiva interface de red
Ejemplo 1 Muacuteltiples Interfaces hacia una Zona
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectloc eth2 detect
Usted puede definir zonas maacutes complicadas usando el archivo etcshorewallhosts pero en la mayoriacutea de los casos ello no es necesario Vea Shorewall_and_Aliased_Interfaceshtml y Multiple_Zoneshtml para algunos ejemplos
Direccionamiento Subredes y Enrutamiento
Normalmente su ISP le asignaraacute un conjunto de direcciones IP Puacuteblicas Usted configuraraacute su interface externa de su firewall para que use una de dichas direcciones permanentemente y entonces tendraacute que decidir como usaraacute el resto de sus direcciones Antes de que contestemos esta pregunta es conveniente primero revisar los fundamentos
Si usted estaacute ampliamente familiarizado con el direccionamiento IP y el enrutamiento puede ir directo a la proacutexima seccioacuten
La siguiente discusioacuten revisa someramente el direccionamiento y el enrutamiento IP Si estaacute interesado en aprender maacutes acerca del tema le recomendaos ampliamente ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0
Direcciones IP
Las direcciones IP versioacuten 4 (IPv4) son nuacutemeros de 32 -bits La notacioacuten wxyz refiere a una direccioacuten donde el byte de orden superior tiene el valor ldquowrdquo el proacuteximo byte tiene el valor ldquoxrdquo etc Si tomamos la direccioacuten 1920214 y la expresamos en hexadecimal obtenemos
C000020E
o viacuteendolo como un entero de 32-bits
C000020E
Subredes
Usted comenzaraacute a escuchar los teacuterminos ldquored Clase Ardquo ldquored Clase B y red Clase C En los primeros diacuteas de IP las redes veniacutean en tres tamantildeos (existiacutea tambieacuten redes Clase D pero era usada de forma diferente)
Clase A - maacutescara de red 255000 size = 2 24Clase B - maacutescara de red 25525500 size = 2 16
Clase C - maacutescara de red 2552552550 size = 256
La clase de una red era determinada uniacutevocamente por el valor del byte superior de su direccioacuten tal que usted pudiera ver la direccioacuten IP e inmediatamente determinara la maacutescara asociada La maacutescara de red es un nuacutemero que cuando se aplica un Y loacutegico con la direccioacuten separa la direccioacuten de red del resto que es la direccioacuten de host Por ejemplo la direccioacuten Clase C 1920214 la direccioacuten de red es el hexadecimal C00002 y el nuacutemero de host es 0E
En la medida que internet crecioacute se hizo claro que tal particionamiento tan grueso de direcciones de 32-bits iva a ser muy limitante (iexclPreviamente a las grandes corporaciones y universidades le fueron asignadas sus propias redes clase A) Despueacutes de unos arranques en falso la teacutecnica de subredes evolucionoacute al sistema actual de redes maacutes pequentildeas la teacutecnica se le refiere como Classless InterDomain Routing (CIDR) Hoy diacutea cualquier sistema que usted probablemente use entenderaacute CIDR y las redes basadas en clases son ya algo del pasado
Una subred es un conjunto contiguo de direcciones IP tal que
1 La cantidad de direcciones en el conjunto es una potencia de 2 y2 La primera direccioacuten en el conjunto es un muacuteltiplo del tamantildeo del conjunto3 La primera direccioacuten en la subred se reserva y se le refiere como la direccioacuten de subred4 La uacutetima direccioacuten en la subred estaacute reservada como la direccioacuten de difusioacuten(broadcast) de la subred
Como puede ver por definicioacuten en cada subred de tamantildeo n hay (n - 2) direcciones utilizables (direcciones que se pueden asignar a maacutequinas) La primera y uacuteltima direccioacuten en la subred son utilizadas como direccioacuten de la subred y direccioacuten de difusioacuten respectivamente En consecuencia las subredes maacutes pequentildeas desperdician maacutes direcciones IP que las redes maacutes grandes
Ya que n es una potencia de dos faacutecilmente podemos calcular el Logaritmo-Base2 (log2) de n Para los tamantildeos maacutes comunes de subred el tamantildeo y su logaritmos base 2 son dados por la siguiente tabla
Tabla 1 Logaritmos Base-2
n log2 n (32 - log2 n)
8 3 29
16 4 28
32 5 27
64 6 26
128 7 25
256 8 24
512 9 23
1024 10 22
2048 11 21
4096 12 20
8192 13 19
16384 14 18
32768 15 17
65536 16 16
Notaraacute que la tabla arriba tambieacuten contiene una columna parar (32 - log2 n) Este nuacutemero es la Variable Length Subnet Mask (VLSM) para una red de tamantildeo n De la tabla arriba podemos derivar la siguiente que es un poco maacutes faacutecil de usar
Tabla 2 VLSM
Subnet Size VLSM Subnet Mask
8 29 255255255248
16 28 255255255240
32 27 255255255224
64 26 255255255192
128 25 255255255128
256 24 2552552550
512 23 2552552540
1024 22 2552552520
2048 21 2552552480
4096 20 2552552400
8192 19 2552552240
16384 18 2552551920
32768 17 2552551280
65536 16 25525500
2 24 8 255000
Note que la VLSM se escribe con barra (ldquordquo) -- a menudo escucharaacute de una subred de tamantildeo 64 referida como una subred ldquobarra 26rdquo y una de tamantildeo 8 referida como de ldquobarra 29rdquo
La maacutescara de subred es simplemente un nuacutemero de 32 bits con los primeros ldquoVLSMrdquo bits puestos a uno y los remanentes bits puestos a cero Por ejemplo para una subred de tamantildeo 64 la maacutescara de subred tiene los primeros 26 bits en uno
11111111111111111111111111000000 = FFFFFFC0 = FFFFFFC0 = 255255255192
La maacutescara de subred tiene la propiedad de que si se hace un Y loacutegico con una direccioacuten en la subred el resultado es la direccioacuten de la subred Igual de importante si hace un Y loacutegico de la maacutescara de subre con una direccioacuten fuera de la subred el resultado NO es la direccioacuten de la subred Como ya veremos esta propiedad de la maacutescara de subred es muy uacutetil para el enrutamiento
Para una subred cuya direccioacuten es abcd y cuyo Variable Length Subnet Mask es v denotamos la subred como ldquoabcdvrdquo usando Notacioacuten CIDR Ejemplo
Tabla 3 Subred
Subred 1010100 - 101010127
Tamantildeo Subred 128
Direccioacuten Subred 1010100
Direccioacuten Difusioacuten 101010127
Notacioacuten CIDR 101010025
Existen dos subredes degeneradas que merecen ser nombradas la subred con un miembro y la subre con 2 32 miembros
Tabla 4 32 y 0
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
La forma maacutes cimple de definir zonas es asociar el nombre de la zona (previamente definida en etcshorewallzones) con una interface de red Esto se hace en el archivo etcshorewallinterfaces El firewall ilustrado arriba tiene tres interfaces de red Donde la conectividad hacia Internet es hecha a traveacutes de un cable Modem o DSL la Interface Externa seraacute un adaptador Ethernet que se ecneuntra conectado al Modem (eg eth0) a menos que conecte usando Point-to-Point Protocol over Ethernet (PPPoE) o Point-to-Point Tunneling Protocol (PPTP) en cuyo caso la Interface Externa seraacute una interface ppp (eg ppp0) Si conecta usando un modem regular su Interface Externa tambieacuten seraacute ppp0 Si conecta usando ISDN su interface externa seraacute ippp0
Si su interface externa es ppp0 o ippp0 entonces desearaacute establecer CLAMPMSS=yes en etcshorewallshorewallconf
Su Interface Local seraacute un adaptador Ethernet (eth0 eth1 o eth2) y conectaraacute a un hub o switch Sus computadores locales estaraacuten conectadas al mismo switch o hub (nota Si tiene un uacutenico sistema local puede conectar directamente el firewall al computador utilizando un cable cruzado)
Su Interface DMZ tambieacuten seraacute un adaptador Ethernet (eth0 eth1 o eth2) y se conectaraacute a un hub o switch Sus computadores DMZ seraacuten conectados al mismo switch o hub (nota Si tiene un uacutenico sistema DMZ puede conectar directamente el firewall al computador usando un cable cruzado)
Precaucioacuten
No conecte la interace interna y externa al mismo hub o switch exceptuando para pruebas Y estaacute corriendo Shorewall 147 o superior Cuando use estas versiones recientes puede probar usando este tipo de configuracioacuten si especifica la opcioacuten arp_filter o la opcioacuten arp_ignore en el archivo etcshorewallinterfaces para todas las interfaces conectadas al mismo hubswitch No se recomienda utilizar tal configuracioacuten con un firewall de produccioacuten
Para el resto de esta guiacutea asumiremos que
bull La Interface Externa es eth0bull La Interface Local es eth1bull La Interface DMZ es eth2
La cinfiguracioacuten Shorewall por omisioacuten no define el contenido de ninguna zona Para definir la configuracioacuten de arriba usando el archivo etcshorewallinterfaces dicho archivo contendriacutea
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectdmz eth2 detect
Note que la zona $FW no tiene una entrada en el archvio etcshorewallinterfaces
Edite el archivo etcshorewallinterfaces y defina las interfaces de red de su firewall asociadas con su zona Si tiene una zona disponible a traveacutes de maacutes de una interface de red simplemente incluya una entrada para cada interface y repita el nombre de zona tantas veces como haga falta con su respectiva interface de red
Ejemplo 1 Muacuteltiples Interfaces hacia una Zona
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectloc eth2 detect
Usted puede definir zonas maacutes complicadas usando el archivo etcshorewallhosts pero en la mayoriacutea de los casos ello no es necesario Vea Shorewall_and_Aliased_Interfaceshtml y Multiple_Zoneshtml para algunos ejemplos
Direccionamiento Subredes y Enrutamiento
Normalmente su ISP le asignaraacute un conjunto de direcciones IP Puacuteblicas Usted configuraraacute su interface externa de su firewall para que use una de dichas direcciones permanentemente y entonces tendraacute que decidir como usaraacute el resto de sus direcciones Antes de que contestemos esta pregunta es conveniente primero revisar los fundamentos
Si usted estaacute ampliamente familiarizado con el direccionamiento IP y el enrutamiento puede ir directo a la proacutexima seccioacuten
La siguiente discusioacuten revisa someramente el direccionamiento y el enrutamiento IP Si estaacute interesado en aprender maacutes acerca del tema le recomendaos ampliamente ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0
Direcciones IP
Las direcciones IP versioacuten 4 (IPv4) son nuacutemeros de 32 -bits La notacioacuten wxyz refiere a una direccioacuten donde el byte de orden superior tiene el valor ldquowrdquo el proacuteximo byte tiene el valor ldquoxrdquo etc Si tomamos la direccioacuten 1920214 y la expresamos en hexadecimal obtenemos
C000020E
o viacuteendolo como un entero de 32-bits
C000020E
Subredes
Usted comenzaraacute a escuchar los teacuterminos ldquored Clase Ardquo ldquored Clase B y red Clase C En los primeros diacuteas de IP las redes veniacutean en tres tamantildeos (existiacutea tambieacuten redes Clase D pero era usada de forma diferente)
Clase A - maacutescara de red 255000 size = 2 24Clase B - maacutescara de red 25525500 size = 2 16
Clase C - maacutescara de red 2552552550 size = 256
La clase de una red era determinada uniacutevocamente por el valor del byte superior de su direccioacuten tal que usted pudiera ver la direccioacuten IP e inmediatamente determinara la maacutescara asociada La maacutescara de red es un nuacutemero que cuando se aplica un Y loacutegico con la direccioacuten separa la direccioacuten de red del resto que es la direccioacuten de host Por ejemplo la direccioacuten Clase C 1920214 la direccioacuten de red es el hexadecimal C00002 y el nuacutemero de host es 0E
En la medida que internet crecioacute se hizo claro que tal particionamiento tan grueso de direcciones de 32-bits iva a ser muy limitante (iexclPreviamente a las grandes corporaciones y universidades le fueron asignadas sus propias redes clase A) Despueacutes de unos arranques en falso la teacutecnica de subredes evolucionoacute al sistema actual de redes maacutes pequentildeas la teacutecnica se le refiere como Classless InterDomain Routing (CIDR) Hoy diacutea cualquier sistema que usted probablemente use entenderaacute CIDR y las redes basadas en clases son ya algo del pasado
Una subred es un conjunto contiguo de direcciones IP tal que
1 La cantidad de direcciones en el conjunto es una potencia de 2 y2 La primera direccioacuten en el conjunto es un muacuteltiplo del tamantildeo del conjunto3 La primera direccioacuten en la subred se reserva y se le refiere como la direccioacuten de subred4 La uacutetima direccioacuten en la subred estaacute reservada como la direccioacuten de difusioacuten(broadcast) de la subred
Como puede ver por definicioacuten en cada subred de tamantildeo n hay (n - 2) direcciones utilizables (direcciones que se pueden asignar a maacutequinas) La primera y uacuteltima direccioacuten en la subred son utilizadas como direccioacuten de la subred y direccioacuten de difusioacuten respectivamente En consecuencia las subredes maacutes pequentildeas desperdician maacutes direcciones IP que las redes maacutes grandes
Ya que n es una potencia de dos faacutecilmente podemos calcular el Logaritmo-Base2 (log2) de n Para los tamantildeos maacutes comunes de subred el tamantildeo y su logaritmos base 2 son dados por la siguiente tabla
Tabla 1 Logaritmos Base-2
n log2 n (32 - log2 n)
8 3 29
16 4 28
32 5 27
64 6 26
128 7 25
256 8 24
512 9 23
1024 10 22
2048 11 21
4096 12 20
8192 13 19
16384 14 18
32768 15 17
65536 16 16
Notaraacute que la tabla arriba tambieacuten contiene una columna parar (32 - log2 n) Este nuacutemero es la Variable Length Subnet Mask (VLSM) para una red de tamantildeo n De la tabla arriba podemos derivar la siguiente que es un poco maacutes faacutecil de usar
Tabla 2 VLSM
Subnet Size VLSM Subnet Mask
8 29 255255255248
16 28 255255255240
32 27 255255255224
64 26 255255255192
128 25 255255255128
256 24 2552552550
512 23 2552552540
1024 22 2552552520
2048 21 2552552480
4096 20 2552552400
8192 19 2552552240
16384 18 2552551920
32768 17 2552551280
65536 16 25525500
2 24 8 255000
Note que la VLSM se escribe con barra (ldquordquo) -- a menudo escucharaacute de una subred de tamantildeo 64 referida como una subred ldquobarra 26rdquo y una de tamantildeo 8 referida como de ldquobarra 29rdquo
La maacutescara de subred es simplemente un nuacutemero de 32 bits con los primeros ldquoVLSMrdquo bits puestos a uno y los remanentes bits puestos a cero Por ejemplo para una subred de tamantildeo 64 la maacutescara de subred tiene los primeros 26 bits en uno
11111111111111111111111111000000 = FFFFFFC0 = FFFFFFC0 = 255255255192
La maacutescara de subred tiene la propiedad de que si se hace un Y loacutegico con una direccioacuten en la subred el resultado es la direccioacuten de la subred Igual de importante si hace un Y loacutegico de la maacutescara de subre con una direccioacuten fuera de la subred el resultado NO es la direccioacuten de la subred Como ya veremos esta propiedad de la maacutescara de subred es muy uacutetil para el enrutamiento
Para una subred cuya direccioacuten es abcd y cuyo Variable Length Subnet Mask es v denotamos la subred como ldquoabcdvrdquo usando Notacioacuten CIDR Ejemplo
Tabla 3 Subred
Subred 1010100 - 101010127
Tamantildeo Subred 128
Direccioacuten Subred 1010100
Direccioacuten Difusioacuten 101010127
Notacioacuten CIDR 101010025
Existen dos subredes degeneradas que merecen ser nombradas la subred con un miembro y la subre con 2 32 miembros
Tabla 4 32 y 0
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
La cinfiguracioacuten Shorewall por omisioacuten no define el contenido de ninguna zona Para definir la configuracioacuten de arriba usando el archivo etcshorewallinterfaces dicho archivo contendriacutea
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectdmz eth2 detect
Note que la zona $FW no tiene una entrada en el archvio etcshorewallinterfaces
Edite el archivo etcshorewallinterfaces y defina las interfaces de red de su firewall asociadas con su zona Si tiene una zona disponible a traveacutes de maacutes de una interface de red simplemente incluya una entrada para cada interface y repita el nombre de zona tantas veces como haga falta con su respectiva interface de red
Ejemplo 1 Muacuteltiples Interfaces hacia una Zona
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect norfc1918loc eth1 detectloc eth2 detect
Usted puede definir zonas maacutes complicadas usando el archivo etcshorewallhosts pero en la mayoriacutea de los casos ello no es necesario Vea Shorewall_and_Aliased_Interfaceshtml y Multiple_Zoneshtml para algunos ejemplos
Direccionamiento Subredes y Enrutamiento
Normalmente su ISP le asignaraacute un conjunto de direcciones IP Puacuteblicas Usted configuraraacute su interface externa de su firewall para que use una de dichas direcciones permanentemente y entonces tendraacute que decidir como usaraacute el resto de sus direcciones Antes de que contestemos esta pregunta es conveniente primero revisar los fundamentos
Si usted estaacute ampliamente familiarizado con el direccionamiento IP y el enrutamiento puede ir directo a la proacutexima seccioacuten
La siguiente discusioacuten revisa someramente el direccionamiento y el enrutamiento IP Si estaacute interesado en aprender maacutes acerca del tema le recomendaos ampliamente ldquoIP Fundamentals What Everyone Needs to Know about Addressing amp Routingrdquo Thomas A Maufer Prentice-Hall 1999 ISBN 0-13-975483-0
Direcciones IP
Las direcciones IP versioacuten 4 (IPv4) son nuacutemeros de 32 -bits La notacioacuten wxyz refiere a una direccioacuten donde el byte de orden superior tiene el valor ldquowrdquo el proacuteximo byte tiene el valor ldquoxrdquo etc Si tomamos la direccioacuten 1920214 y la expresamos en hexadecimal obtenemos
C000020E
o viacuteendolo como un entero de 32-bits
C000020E
Subredes
Usted comenzaraacute a escuchar los teacuterminos ldquored Clase Ardquo ldquored Clase B y red Clase C En los primeros diacuteas de IP las redes veniacutean en tres tamantildeos (existiacutea tambieacuten redes Clase D pero era usada de forma diferente)
Clase A - maacutescara de red 255000 size = 2 24Clase B - maacutescara de red 25525500 size = 2 16
Clase C - maacutescara de red 2552552550 size = 256
La clase de una red era determinada uniacutevocamente por el valor del byte superior de su direccioacuten tal que usted pudiera ver la direccioacuten IP e inmediatamente determinara la maacutescara asociada La maacutescara de red es un nuacutemero que cuando se aplica un Y loacutegico con la direccioacuten separa la direccioacuten de red del resto que es la direccioacuten de host Por ejemplo la direccioacuten Clase C 1920214 la direccioacuten de red es el hexadecimal C00002 y el nuacutemero de host es 0E
En la medida que internet crecioacute se hizo claro que tal particionamiento tan grueso de direcciones de 32-bits iva a ser muy limitante (iexclPreviamente a las grandes corporaciones y universidades le fueron asignadas sus propias redes clase A) Despueacutes de unos arranques en falso la teacutecnica de subredes evolucionoacute al sistema actual de redes maacutes pequentildeas la teacutecnica se le refiere como Classless InterDomain Routing (CIDR) Hoy diacutea cualquier sistema que usted probablemente use entenderaacute CIDR y las redes basadas en clases son ya algo del pasado
Una subred es un conjunto contiguo de direcciones IP tal que
1 La cantidad de direcciones en el conjunto es una potencia de 2 y2 La primera direccioacuten en el conjunto es un muacuteltiplo del tamantildeo del conjunto3 La primera direccioacuten en la subred se reserva y se le refiere como la direccioacuten de subred4 La uacutetima direccioacuten en la subred estaacute reservada como la direccioacuten de difusioacuten(broadcast) de la subred
Como puede ver por definicioacuten en cada subred de tamantildeo n hay (n - 2) direcciones utilizables (direcciones que se pueden asignar a maacutequinas) La primera y uacuteltima direccioacuten en la subred son utilizadas como direccioacuten de la subred y direccioacuten de difusioacuten respectivamente En consecuencia las subredes maacutes pequentildeas desperdician maacutes direcciones IP que las redes maacutes grandes
Ya que n es una potencia de dos faacutecilmente podemos calcular el Logaritmo-Base2 (log2) de n Para los tamantildeos maacutes comunes de subred el tamantildeo y su logaritmos base 2 son dados por la siguiente tabla
Tabla 1 Logaritmos Base-2
n log2 n (32 - log2 n)
8 3 29
16 4 28
32 5 27
64 6 26
128 7 25
256 8 24
512 9 23
1024 10 22
2048 11 21
4096 12 20
8192 13 19
16384 14 18
32768 15 17
65536 16 16
Notaraacute que la tabla arriba tambieacuten contiene una columna parar (32 - log2 n) Este nuacutemero es la Variable Length Subnet Mask (VLSM) para una red de tamantildeo n De la tabla arriba podemos derivar la siguiente que es un poco maacutes faacutecil de usar
Tabla 2 VLSM
Subnet Size VLSM Subnet Mask
8 29 255255255248
16 28 255255255240
32 27 255255255224
64 26 255255255192
128 25 255255255128
256 24 2552552550
512 23 2552552540
1024 22 2552552520
2048 21 2552552480
4096 20 2552552400
8192 19 2552552240
16384 18 2552551920
32768 17 2552551280
65536 16 25525500
2 24 8 255000
Note que la VLSM se escribe con barra (ldquordquo) -- a menudo escucharaacute de una subred de tamantildeo 64 referida como una subred ldquobarra 26rdquo y una de tamantildeo 8 referida como de ldquobarra 29rdquo
La maacutescara de subred es simplemente un nuacutemero de 32 bits con los primeros ldquoVLSMrdquo bits puestos a uno y los remanentes bits puestos a cero Por ejemplo para una subred de tamantildeo 64 la maacutescara de subred tiene los primeros 26 bits en uno
11111111111111111111111111000000 = FFFFFFC0 = FFFFFFC0 = 255255255192
La maacutescara de subred tiene la propiedad de que si se hace un Y loacutegico con una direccioacuten en la subred el resultado es la direccioacuten de la subred Igual de importante si hace un Y loacutegico de la maacutescara de subre con una direccioacuten fuera de la subred el resultado NO es la direccioacuten de la subred Como ya veremos esta propiedad de la maacutescara de subred es muy uacutetil para el enrutamiento
Para una subred cuya direccioacuten es abcd y cuyo Variable Length Subnet Mask es v denotamos la subred como ldquoabcdvrdquo usando Notacioacuten CIDR Ejemplo
Tabla 3 Subred
Subred 1010100 - 101010127
Tamantildeo Subred 128
Direccioacuten Subred 1010100
Direccioacuten Difusioacuten 101010127
Notacioacuten CIDR 101010025
Existen dos subredes degeneradas que merecen ser nombradas la subred con un miembro y la subre con 2 32 miembros
Tabla 4 32 y 0
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
Clase C - maacutescara de red 2552552550 size = 256
La clase de una red era determinada uniacutevocamente por el valor del byte superior de su direccioacuten tal que usted pudiera ver la direccioacuten IP e inmediatamente determinara la maacutescara asociada La maacutescara de red es un nuacutemero que cuando se aplica un Y loacutegico con la direccioacuten separa la direccioacuten de red del resto que es la direccioacuten de host Por ejemplo la direccioacuten Clase C 1920214 la direccioacuten de red es el hexadecimal C00002 y el nuacutemero de host es 0E
En la medida que internet crecioacute se hizo claro que tal particionamiento tan grueso de direcciones de 32-bits iva a ser muy limitante (iexclPreviamente a las grandes corporaciones y universidades le fueron asignadas sus propias redes clase A) Despueacutes de unos arranques en falso la teacutecnica de subredes evolucionoacute al sistema actual de redes maacutes pequentildeas la teacutecnica se le refiere como Classless InterDomain Routing (CIDR) Hoy diacutea cualquier sistema que usted probablemente use entenderaacute CIDR y las redes basadas en clases son ya algo del pasado
Una subred es un conjunto contiguo de direcciones IP tal que
1 La cantidad de direcciones en el conjunto es una potencia de 2 y2 La primera direccioacuten en el conjunto es un muacuteltiplo del tamantildeo del conjunto3 La primera direccioacuten en la subred se reserva y se le refiere como la direccioacuten de subred4 La uacutetima direccioacuten en la subred estaacute reservada como la direccioacuten de difusioacuten(broadcast) de la subred
Como puede ver por definicioacuten en cada subred de tamantildeo n hay (n - 2) direcciones utilizables (direcciones que se pueden asignar a maacutequinas) La primera y uacuteltima direccioacuten en la subred son utilizadas como direccioacuten de la subred y direccioacuten de difusioacuten respectivamente En consecuencia las subredes maacutes pequentildeas desperdician maacutes direcciones IP que las redes maacutes grandes
Ya que n es una potencia de dos faacutecilmente podemos calcular el Logaritmo-Base2 (log2) de n Para los tamantildeos maacutes comunes de subred el tamantildeo y su logaritmos base 2 son dados por la siguiente tabla
Tabla 1 Logaritmos Base-2
n log2 n (32 - log2 n)
8 3 29
16 4 28
32 5 27
64 6 26
128 7 25
256 8 24
512 9 23
1024 10 22
2048 11 21
4096 12 20
8192 13 19
16384 14 18
32768 15 17
65536 16 16
Notaraacute que la tabla arriba tambieacuten contiene una columna parar (32 - log2 n) Este nuacutemero es la Variable Length Subnet Mask (VLSM) para una red de tamantildeo n De la tabla arriba podemos derivar la siguiente que es un poco maacutes faacutecil de usar
Tabla 2 VLSM
Subnet Size VLSM Subnet Mask
8 29 255255255248
16 28 255255255240
32 27 255255255224
64 26 255255255192
128 25 255255255128
256 24 2552552550
512 23 2552552540
1024 22 2552552520
2048 21 2552552480
4096 20 2552552400
8192 19 2552552240
16384 18 2552551920
32768 17 2552551280
65536 16 25525500
2 24 8 255000
Note que la VLSM se escribe con barra (ldquordquo) -- a menudo escucharaacute de una subred de tamantildeo 64 referida como una subred ldquobarra 26rdquo y una de tamantildeo 8 referida como de ldquobarra 29rdquo
La maacutescara de subred es simplemente un nuacutemero de 32 bits con los primeros ldquoVLSMrdquo bits puestos a uno y los remanentes bits puestos a cero Por ejemplo para una subred de tamantildeo 64 la maacutescara de subred tiene los primeros 26 bits en uno
11111111111111111111111111000000 = FFFFFFC0 = FFFFFFC0 = 255255255192
La maacutescara de subred tiene la propiedad de que si se hace un Y loacutegico con una direccioacuten en la subred el resultado es la direccioacuten de la subred Igual de importante si hace un Y loacutegico de la maacutescara de subre con una direccioacuten fuera de la subred el resultado NO es la direccioacuten de la subred Como ya veremos esta propiedad de la maacutescara de subred es muy uacutetil para el enrutamiento
Para una subred cuya direccioacuten es abcd y cuyo Variable Length Subnet Mask es v denotamos la subred como ldquoabcdvrdquo usando Notacioacuten CIDR Ejemplo
Tabla 3 Subred
Subred 1010100 - 101010127
Tamantildeo Subred 128
Direccioacuten Subred 1010100
Direccioacuten Difusioacuten 101010127
Notacioacuten CIDR 101010025
Existen dos subredes degeneradas que merecen ser nombradas la subred con un miembro y la subre con 2 32 miembros
Tabla 4 32 y 0
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
Tabla 2 VLSM
Subnet Size VLSM Subnet Mask
8 29 255255255248
16 28 255255255240
32 27 255255255224
64 26 255255255192
128 25 255255255128
256 24 2552552550
512 23 2552552540
1024 22 2552552520
2048 21 2552552480
4096 20 2552552400
8192 19 2552552240
16384 18 2552551920
32768 17 2552551280
65536 16 25525500
2 24 8 255000
Note que la VLSM se escribe con barra (ldquordquo) -- a menudo escucharaacute de una subred de tamantildeo 64 referida como una subred ldquobarra 26rdquo y una de tamantildeo 8 referida como de ldquobarra 29rdquo
La maacutescara de subred es simplemente un nuacutemero de 32 bits con los primeros ldquoVLSMrdquo bits puestos a uno y los remanentes bits puestos a cero Por ejemplo para una subred de tamantildeo 64 la maacutescara de subred tiene los primeros 26 bits en uno
11111111111111111111111111000000 = FFFFFFC0 = FFFFFFC0 = 255255255192
La maacutescara de subred tiene la propiedad de que si se hace un Y loacutegico con una direccioacuten en la subred el resultado es la direccioacuten de la subred Igual de importante si hace un Y loacutegico de la maacutescara de subre con una direccioacuten fuera de la subred el resultado NO es la direccioacuten de la subred Como ya veremos esta propiedad de la maacutescara de subred es muy uacutetil para el enrutamiento
Para una subred cuya direccioacuten es abcd y cuyo Variable Length Subnet Mask es v denotamos la subred como ldquoabcdvrdquo usando Notacioacuten CIDR Ejemplo
Tabla 3 Subred
Subred 1010100 - 101010127
Tamantildeo Subred 128
Direccioacuten Subred 1010100
Direccioacuten Difusioacuten 101010127
Notacioacuten CIDR 101010025
Existen dos subredes degeneradas que merecen ser nombradas la subred con un miembro y la subre con 2 32 miembros
Tabla 4 32 y 0
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
Tamantildeo Subred Longitud VLSM Maacutescara Subred Notacioacuten CIDR
1 32 255255255255 abcd32
32 0 0000 00000
Asi que cualquier direccioacuten abcd puede tambieacuten ser escrita como abcd32 y el conjunto de todas las direcciones IP posibles como 00000
Un usuario Shorewall contribuyoacute con este uacutetil resumen graacutefico de la informacioacuten anterior
Maacutes adelante en esta guiacutea veremos usada la notacioacuten abcdv para describir la configuracioacuten de una interface de red (el utilitario ldquoiprdquo tambieacuten usa esta sintaacutexis) Esto simplemente significa que la interface estaacute configurada con la direccioacuten ip abcd y con la maacutescara de red que corresponde a VLSM v
Ejemplo 2 192026529
La interface estaacute configurada con la direccioacuten IP 1920265 y la maacutescara de red 255255255248
A partir de Shorewall 146 sbinshorewall soportar el comando ipcalc que automaacuteticamente calcula la informacioacuten acerca de la [sub]red
Ejemplo 3 Uso del comando ipcalc
shorewall ipcalc 101010025 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Ejemplo 4 Uso del comando ipcalc
shorewall ipcalc 1010100 255255255128 CIDR=101010025 NETMASK=255255255128 NETWORK=1010100 BROADCAST=101010127
Enrutamiento
Uno de los propoacutesitos de las subredes es que eacuteste conforma las bases para el enrutamiento Aquiacute se muestra una tabla de enrutamiento en un firewall
[rootgateway root] netstat -nrKernel IP routing tableDestination Gateway Genmask Flgs MSS Win irtt Iface19216891 0000 255255255255 UH 40 0 0 texas206124146177 0000 255255255255 UH 40 0 0 eth1206124146180 0000 255255255255 UH 40 0 0 eth319216830 0000 2552552550 U 40 0 0 eth319216820 0000 2552552550 U 40 0 0 eth119216810 0000 2552552550 U 40 0 0 eth22061241460 0000 2552552550 U 40 0 0 eth019216890 19202223 2552552550 UG 40 0 0 texas127000 0000 255000 U 40 0 0 lo
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
0000 206124146254 0000 UG 40 0 0 eth0[rootgateway root]
El dispositivo texas es un tunel GRE con un sitio similar en Dallas Texas
Las tres primeras rutas son rutas host ya que indican coacutemo llegar a una uacutenica maacutequina En la salida de ldquonetstatrdquo esto puede verse en por la ldquoGenmaskrdquo (Maacutescara de Subred) de 255255255255 y la ldquoHrdquo en la columna Flags Las restantes son rutas de redrdquo ya que le dicen al kernel coacutemo enrutar los paquetes hacia subredes completas La uacuteltima ruta se conoce como ruta por omisioacuten y la pasarela mencionada en la ruta es denominado el default gateway
Cuando el kernel intenta enviar un paquete a la direccioacuten IP A comienza por el tope de la tabla de enrutamiento y
bull A se hace Y loacutegico con el valor de la ldquoGenmaskrdquo en la entrada de la tablabull El resultado se compara con el valor ldquoDestinationrdquo en la entrada de la tablabull Si el resultado y el valor ldquoDestinationrdquo son iguales entonces
o Si la columna ldquoGatewayrdquo no es cero el paquete es enviada al gateway por medio de la interface definida en la columna ldquoIfacerdquo
o De otra forma el paquete es enviado directamente a A por medio de la interface nombrada en la columna ldquoifacerdquo
bull De otra forma los pasos anteriores se repiten para la proacutexima entrada en la tabla
Ya que la ruta por omisioacuten coincide con cualquier direccioacuten IP (A LAND 0000 = 0000) los paquetes que no coincidan con ninguna otra ruta en las entradas de la tabla seraacuten enviados al default gateway que usualmente es un enrutador de su ISP Tomemos un ejemplo Suponga que deseamos enrutar un paquete a 19216815 Esta direccioacuten claramente no coincide con ninguna de las rutas host en la tabla pero si hacemos un Y loacutegico con 2552552550 el resultado es 19216810 que coincide con la siguiente entrada de la tabla de enrutamiento
19216810 0000 2552552550 U 40 0 0 eth2
Asiacute que para enruta un paquete hacia 19216815 el paquete se enviacutea directmente por medio de eth2
Se debe enfatizar una cosa maacutes todos los paquetes salientes son enviados usando la tabla de enrutamiento y los paquetes respuesta no son un caso especial Esto parece ser un error comuacuten de concepcioacuten donde las personas piensan que los paquetes de solicitud son como el salmoacuten y contiene coacutedigo geneacutetico que se transfiere maacutegicamente hacia los paquetes respuesta ta que las respuestas siguen la ruta reversa tomada por la solicitud Esto no es el caso las respuestas pueden tomar una ruta totalmente diferente de vuelta hacia el cliente a la que tomoacute la solicitud ellas son totalmente independientes
Address Resolution Protocol (ARP)
Cuando se enviacutean paquetes sobre Ethernet las direcciones IP no se usan En cambio se usa el direccionamiento Ethernet basado direcciones Media Access Control (MAC) Cada dispositivo Ethernet posee su propia y uacutenica direccioacuten MAC quemada en una PROM en el dispositivo durante su fabricacioacuten Usted puede obtener la MAC de un dispositivo Ethernet usando el utilitario ldquoiprdquo
[rootgateway root] ip addr show eth02 eth0 ltBROADCASTMULTICASTUPgt mtu 1500 qdisc htb qlen 100linkether 020008e3fa55 brd ffffffffffffinet 20612414617624 brd 206124146255 scope global eth0inet 20612414617824 brd 206124146255 scope global secondary eth0inet 20612414617924 brd 206124146255 scope global secondary eth0[rootgateway root]
Como puede ver de la salida del comando anterior la MAC es de 6 bytes (48 bits) La MAC de una tarjeta usualmente tambieacuten viene impresa en su superficie en una etiqueta Ya que IP usa direcciones IP y Ethernet usa
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
direcciones MAC se requiere de un mecanismo para traducir una direccioacuten IP a una direccioacuten MAC este es el propoacutesito del Address Resolution Protocol (ARP) Aquiacute vemos ARP en accioacuten
[rootgateway root] tcpdump -nei eth2 arptcpdump listening on eth2095649766757 208e34c48 0625aa8af0 arp 42 arp who-has 192168119 tell 1921681254095649769372 0625aa8af0 208e34c48 arp 60 arp reply 192168119 is-at 0625aa8af0
2 packets received by filter0 packets dropped by kernel[rootgateway root]
En este intercambio 1921681254 (MAC 208e34c48) desea conocer la MAC del dispositivo con la direccioacuten IP 192168119 El sistema que tiene la direccioacuten IP responde que la direccioacuten MAC del dispositivo con la direccioacuten IP 192168119 es 0625aa8af0
Con la finalidad de evitar el intercambio constante ARP cada vez que un paquete IP se enviacutea los sistemas mantienen un cache ARP de correspondencias IPlt-gtMAC Usted puede ver el cache ARP en su sistema (incluyendo su sistema Windows) usando el comando ldquoarprdquo
[rootgateway root] arp -na (206124146177) at 00A0C9153978 [ether] on eth1 (19216813) at 00A0CC636689 [ether] on eth2 (19216815) at 00A0CCDB31C4 [ether] on eth2 (206124146254) at 00036C8A1838 [ether] on eth0 (192168119) at 000625AA8AF0 [ether] on eth2
El siacutembolo al inicio de la salida son el resultado de haber especificado la opcioacutenn (el ldquoarprdquo de Windows no soporta esta opcioacuten) que provoca que el programa ldquoarprdquo evita la traduccioacuten de nombres IP-gtDNS Si no hubiera especificado esta opcioacuten los siacutembolos hubiesen sido remplazados con sus correspondientes FQDN a cada direccioacuten IP Note que la uacuteltima entrada enla tabla registra la informacioacuten que vimos usando tcpdump arriba
RFC 1918
Las direcciones IP son asignadas por la Internet Assigned Number Authority (IANA) quien delega a su vez las asignaciones de acuerdo a las zonas geograacuteficas a los Regional Internet Registries (RIRs) Por ejemplo las asignaciones para las Americas y para el Africa sub-Sahara Africa se delega al American Registry for Internet Numbers (ARIN) Estos RIRs pueden a su vez delegar a registros nacionales La mayoriacutea de nosotros no lidiamos con estos registros sino que obtenemos nuestras direcciones IP a partir de nuestros ISP Es un hecho que la mayoriacutea de nosotros no podemos justificar tener tantas IPs como dispositivos tenemos asiacute que terminamos usando direcciones IP Privadas El RFC 1918 reserva varios rangos IP para este propoacutesito
10000 - 102552552551721600 - 1723125525519216800 - 192168255255
Las direcciones reservadas por el RFC 1918 son a veces referidas como no ruteables debido a que los enrutadores en Internet no renviacutean los paquetes que tienen destinos direcciones IP del RFC 1918 Esto se entiende ya que cualquiera puede seleccionar cualquiera de estas direcciones para su uso privado pero el teacutermino no ruteable es algo desafortunado porque hace pensar erroacuteneamente a las personas que dichas direcciones no pueden ser enviadas por medio de enrutadores Esto definitivamente no es cierto los enrutadores privados (incluyendo su firewall basado en Shorewall) pueden enviar usando direcciones RFC 1918 igual de bien que con cualquier otra direccioacuten
Cuando seleccione direcciones de estos rangos hay un par de cosas a mantener en mente
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
bull En la medida que el espacio IPv4 se agota maacutes y maacutes organizaciones (incluyendo ISPs) estaacuten comenzando a usar direcciones RFC 1918 en sus infraestructuras
bull Usted no quiere usar direcciones que este en uso en su ISP o por cualquier otra organizacioacuten con la cual desee establecer una relacioacuten VPN
Asiacute que es buena idea verificar con su ISP para ver si estaacuten usando (o planeando usar) direcciones privadas antes de decidir las direcciones que usaraacute
Alerta
En este documento direcciones IP externas reales son de la forma 19202x 19202024 estaacute reservada por el RFC 3330 para el uso como direcciones IP puacuteblicas en ejemplos impresos y redes de prueba Estas direcciones reales no deben confundirse con las direcciones en 1921680016 como se describen arriba dichas direcciones se reservan en el RFC 1918 para uso privado
Configuracioacuten De Su Red
La escogencia de coacutemo configurar su red depende primariamente de cuaacutentas direcciones IP Puacuteblicas tenga vs cuaacutentos dispositivos direecionables tiene en su red Independientemente de cuaacutentas direcciones tenga su ISP manejaraacute ese conjunto de direcciones en una de dos maneras
bull Enrutando - El traacutefico hacia cualquiera de sus direcciones seraacute enrutado por medio un uacutenico gateway Esto generalmente ocurre si su ISP le ha asignado una subred compelta (29 o mayor) En este caso usted asginaraacute la direccioacuten del gateway como la direccioacuten IP de la interface externa de su routerfirewall
bull No enrutando - Su ISP enviaraacute el traacutefico directamente a cada una de sus direcciones directamente
En las siguientes secciones veremos estos escenarios por separado
Antes de comenzar hay algo que tenemos que verificar
Si esta usando el paquete Debian verifique su archivo shorewallconf para asegurarse que lo siguiente esta configurado correctamente si no es asiacute corrija adecuadamente
bull NAT_ENABLED=Yes (versiones Shorewall previas a 146)bull IP_FORWARDING=On
Enrutando
Asumamos que su ISP le ha asignado la subred 192026428 enrutada por medio de 1920265 Esto significa que tiene las direcciones IP 1920264 a 1920279 y que la interface externa de su firewall tiene la IP 1920265 Su ISP tambieacuten le ha dicho que debe usar la maacutescara de red 2552552550 (asi que su 28 es parte de una mayor 24) Con esta cantidad de direcciones IP usted estaacute en la capacidad de hacer subredes de su 28 en dos subredes 29 y configurar su red como su muestra en el siguiente diagrama
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
Aquiacute la DMZ estaacute compuesta de la subred 192026429 y la red Local de la red 192027229 El default gateway para las maacutequinas en la DMZ seraacute configurado a 1920266 y el default gateway para las maacutequinas en la red local seraacute 1920273
Note que este diagrama desperdicia muchas direcciones IP ya que estaacute usando 1920264 y 1920272 como direcciones de subred 1920271 y 1920279 como direcciones de difusioacuten de las subredes y 1920266 y 1680273 como direcciones internas del firewallrouter Auacuten asiacute muestra cmo funciona el hacer subredes y si estvieacuteramos lidiando con una red 24 en vez de una red 28 el uso de 6 direcciones IP de 256 estariacutea justificado soacutelo por la simplicidad de la configuracioacuten
El lector astuto notaraacute que la interface externa del FirewallRouter es de hecho parte de la subred DMZ (192026429) iquestQueacute pasa si DMZ 1 (1920267) intenta comunicarse con 1920265 La tabla de enrutamiento de DMZ 1 luciriacutea asiacute
Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Iface1920264 0000 255255255248 U 40 0 0 eth00000 1920266 0000 UG 40 0 0 eth0
Esto significa que DMZ 1 enviaraacute una solicitud ARP ldquoquien-tiene 1920265rdquo y ninguacuten dispositivo en el segmento Ethernet DMZ tiene esa direccioacuten IP iexclAuacuten asiacute el firewall responderaacute a la solicitud con la direccioacuten MAC de su Interface DMX DMZ 1 puede entonces enviar tramas Ethernet a esa direccioacuten MAC y seraacuten recibidos (correctamente) por el firewallrouter
Es este inesperado comportamiento ARP en la parte del Kernel Linux que provoca la alerta anterior en esta guiacutea acerca de la conexioacuten de muacuteltiples interfaces del firewallrouter al mismo hubswitch Cuando una solicitud ARP para una de las direcciones IP del firewallrouter es enviada por cualquier de los sistemas conectados al hubswitch todas las interfaces que conectan al hubswitch pueden responder Es entonces una carrera de cuaacutel respuesta aquiacute-es llega primero a quien enviacuteo la solicitud ARP
No enrutando
Si tiene la situacioacuten anterior pero no es enrutando puede configurar su red exactamente igual que arriba pero con una vuelta adicional de tuerca simplemente especifique la opcioacuten proxyarp en las tres interfaces del firewall en el archivo etcshorewallinterfaces
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
La mayoriacutea no tenemos el lujo de tener suficientes direcciones IP puacuteblicas para configurar sus redes como se comentoacute en el ejemplo anterior (incluso si la configuracioacuten en enrutando)
Para el resto de esta seccioacuten asuma que su ISP le ha asignado las direcciones IP 19202176-180 y se le ha dicho que use la maacutescara de red 2552552550 y el default gateway 19202254
Claramente este conjunto de direcciones no constituyen una subred y no hay suficientes direcciones para todas las interfaces de red Hay cuatro teacutecnicas que se pueden usar para resolver esta situacioacuten
bull Source Network Address Translation (SNAT)bull Destination Network Address Translation (DNAT) tambieacuten conocido como Port Forwardingbull Proxy ARPbull Network Address Translation (NAT) tambieacuten conocido como NAT uno-a-uno
A menudo una combinacioacuten de estas teacutecnicas pueden usarse efectivamente Cada una de ellas seraacuten discutidas por separado en las siguientes secciones
SNAT
Con SNAT un segmento interno LAN se configura usando direcciones RCF 1918 Cuando una maacutequina A en este segmento interno inicia una conexioacuten a una maacutequina B en internet el firewallrouter rescribe el encabezado IP en la solicitud para usar una de las direcciones IP puacuteblicas como direccioacuten de origen Cuando B responde y la respuesta es recibida en el firewall el firewall cambia la direccioacuten destino de vuelta a la direccioacuten RFC 1918 de A y enviacutea la respuesta de vuelta a A
Supongamos que deciden usar SNAT en su zona local y usar la direccioacuten puacuteblica 19202176 tanto como direccioacuten externa IP del firewall como direccioacuten origen para las solicitudes salientes de dicha zona local
La zona local ha sido dividida en subredes como 192168201029 (maacutescara de red 255255255248)
El sistema en la zona local seriacutea configurado con el default gateway 1921682011 (la direccioacuten IP de la interface local del firewall)SNAT se configura en Shorewall usando el archivo etcshorewallmasq INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Este ejemplo usa la teacutecnica normal de asignar la misma direccioacuten IP puacuteblica para la interface externa del firewall y para el SNAT Si desea usar una direccioacuten IP puacuteblica diferente usted tendriacutea que usar las herramientas de
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
configuracioacuten de su distribucioacuten Linux para agregar dicha direccioacuten IP a la interface externa o puede poner ADD_SNAT_ALIASES=Yes en etcshorewallshorewallconf y Shorewall agregaraacute la direccioacuten por usted
DNAT
Cuando se usa SNAT es imposible para las maacutequinas en Internet iniciar una conexioacuten con otra maacutequina de los sistemas locales ya que dichos sistemas no tienen direcciones IP Puacuteblicas DNAT provee una forma de permitir conexiones selectivas desde internet
Suponga que su hija desea correr un servidor web en su sistema local Local 3rdquo Usted pudiera permitir conexiones desde internet hacia su servidor agregando la siguiente entrada en etcshorewallrules
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTDNAT net loc1921682014 tcp www
Si alguna de las amigas de su hija en la direccioacuten A desea acceder al servidor de su hija ella puede conectar a http19202176 (la direccioacuten IP externa del firewall) y el firewall rescribiraacute la direccioacuten IP destino a 1921682014 (el sistema de su hija) y enviacutea la solicitud Cuando el servidor de su hija responde el firewall rescribiraacute la direccioacuten origen de vuelta a 19202176 y enviacutea la respuesta de vuelta hacia a A
Este ejemplo usa la direccioacuten IP externa del firewall para hacer el DNAT Usted puede usar otra direccioacuten de sus direcciones IP puacuteblicas (coloacutequela en la columna ORIGINAL DEST en la regla anterior arriba) pero Shorewall no agregaraacute esa direccioacuten a la interface externa del firewall por usted
Importante
Cuando pruebe reglas DNAT como la anterior usted debe probar desde un cliente EXTERNO A SU FIREWALL (en la zona net) iexclUsted no puede probar dichas reglas desde las redes internas al firewall
Para tips de resolucioacuten de problemas DNAT For DNAT vea los FAQ 1a y 1b
Proxy ARP
La idea detraacutes de Proxy ARP es
bull Una maacutequina H detraacutes de su firewall se le asigna una de las direcciones IP puacuteblicas (A) y se le asigna la misma maacutescara de red (M) a la de la interface externa del firewall
bull El firewall responde las solicitudes ARP quien tiene para A de maacutequinas fuera del firewallbull Cuando H enviacutea una solicitud ARP ldquoquien tienerdquo por una maacutequina con una direccioacuten en la red definida por
M donde la maacutequina destino estaacute afuera del firewall el firewall responderaacute a H (con la MAC de la interface del firewall a la cual esteacute conectada H)
Para una descricpioacuten maacutes completa de coacutemo funciona Proxy ARP vea la Documentacioacuten Shorewall Proxy
Supongamos qeu decidimos usar Proxy ARP en la DMZ en nuestra red ejemplo
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
Aquiacute hemos asignado la direccion IP 19202177 al sistema DMZ 1 y 19202178 a DMZ 2 Note que hemos asignado una direccioacuten IP arbitraria RFC 1918 y una maacutescara de red a la interface DMZ del firewall Esta direccioacuten y maacutescara de red no son relevantes soacutelo aseguacuterese de no solapar otra subred que haya definido
La configuracioacuten Shorewall de Proxy ARP se hace usando el archivo etcshorewallproxyarp
ADDRESS INTERFACE EXTERNAL HAVE ROUTE PERSISTANT19202177 eth2 eth0 No19202178 eth2 eth0 No
Ya que la columna HAVE ROUTE contiene No Shorewall agregaraacute rutas de host a traveacutes de eth2 hacia 19202177 y 19202178 Las interfaces ethernet en DMZ 1 y DMZ 2 deberiacutean ser configuradas para tener las direcciones IP que se muestran pero deberiacutean tener el mismo default gateway que el propio firewall -- a saber 19202254 En otras palabras ellos deberiacutean configurar tal como si estuvieran en paralelo con el firewall en vez de detraacutes de eacutel
Precaucioacuten
No agregue direcciones con Proxy ARP (19202177 y 19202178 en el ejemplo arriba) a la interface externa del firewall (eth0 en nuestro ejemplo)
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
NAT uno-a-uno
Con NAT uno-a-uno usted asigna direcciones RFC 1918 a los sistemas locales y luego establece un mapa uno-a-uno entre estas direcciones y las direcciones IP puacuteblicas Para las conexiones salientes ocurre SNAT (Source Network Address Translation) y para las conexiones entrantes ocurre DNAT (Destination Network Address Translation) Volvamos sobre nuestro ejemplo que involucra el servidor web de su hija en el sistema Local 3
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
Recuerde que en esta configuracioacuten la red local estaacute usando SNAT y estaacute compartiendo la direccioacuten IP de la interface externa del firewall (19202176) para las conexiones salientes Esto se hace con la siguiente entrada en etcshorewallmasq
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
Suponga ahora que ha decidido darle a su hija su propia direccioacuten IP (19202179) tanto para las conexiones entrantes como salientes Usted hariacutea eso agregando una entrada en etcshorewallnat
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
Con esta entrada su hija tiene su propia direccioacuten IP y los otros dos sistemas locales comparten la direccioacuten IP del firewall
Una vez que la relacioacuten entre 19202179 y 1921682014 se ha establecido por el archivo nat anterior ya no es apropiado usar la regla DNAT para el servidor web de su hija en cambio soacutelo use un regla ACCEPT
ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL PORT(S) PORT(S) DESTACCEPT net loc1921682014 tcp www
Unas palabras de alerta vienen al caso aquiacute los ISPs configuran sus enrutadores con un cache ARP con tiempos de vida muy largos Si mueve un sistema paralelo a detraacutes de su firewall con Proxy ARP probablemente pasaraacuten HORAS antes que el sistema puede comunicarse con internet Hay un par de cosas que puede intentar
1 (Cortesiacutea de Bradey Honsinger) La lectura del Stevens TCPIP Illustrated Vol 1 revela que
paquetes ARP ldquoinnecesariosrdquo deberiacutean provocar que el enrutador del ISP refresque su cache ARP (seccioacuten 47) Un ARP innecesario (gratuituos) es simplemente una maacutequina solicitando la direccioacuten MAC de su propia IP ademaacutes para asegurar que la direccioacuten no estaacute duplicada en el segmento
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
ldquosi la maacutequina que enviacutea ARP innecesario ha recien cambiado su direccioacuten de hardware este paquete provoca que cualqueir otra maacutequina que tenga una entrada en su cache para la direccioacuten antigua actualice su entrada ARP en el cache con la nueva direccioacutenrdquo
Que en turno es exactamente lo que usted quiere hacer cuado cambia una maacutequina de estar expuesta a Internet a estar detraacutes del Shorewall usando Proxy ARP (o NAT uno-a-uno) Felizmente las versiones maacutes recientes del paquete iputils de RedHat incluyen ldquoarpingrdquo cuya bandera ldquo-Urdquo hace exactamente eso
arping -U -I ltnet ifgt ltnewly proxied IPgt
arping -U -I eth0 66589983 for example
Stevens continua y menciona que no todos los sistemas responden adecuadamente a los ARP innecesarios (gratuituos) pero googleando con arping -U al parecer apunta al soporte de que esta idea funciona la mayoriacutea de las veces
2 Puede llamar a su ISP y pedir que purguen la vieja entrada ARP del cache pero muchos de ellos ni siquiera pueden o quieren purgar entradas individuales
Usted puede determinar si el cache ARP del gateway de su ISP estaacute estancado usando ping y tcpdump Suponga que sospecha que el enrutador que funge de gateway tiene una entrada cache ARP estancada para 19202177 En el firewall corra tcpdump asiacute
tcpdump -nei eth0 icmp
Ahora desde 19202177 haga ping hacia el gateway del ISP (que asumimos es 19202254)
ping 19202254
Podemos ahora observar de la salida de tcpdump
133512159321 04e2202033 007795dd19 ip 98 19202177 gt 19202254 icmp echo request (DF)133512207615 007795dd19 0c0a850b257 ip 98 19202254 gt 19202177 icmp echo reply
Note que la direccioacuten origen MAC en la solicitud echo es diferente a la direccioacuten destino MAC en la respuesta al echo En este caso 04e2202033 era la MAC del NIC eth0 del firewall mientras 0c0a850b257 era la direccioacuten MAC de DMZ 1 En otras palabras el cache ARP del gateway auacuten asocia 19202177 con la NIC en la NIC de DMZ 1 en ez de la de eth0 del fiewall
Reglas
Nota
Shorewall tiene una facilidad de macro que incluye macros para muchas aplicaciones estandar Esta seccioacuten no usa dichos macros sino que define las reglas directamente
Con las poliacuteticas por omisioacuten descritas previamente en este documento su sistemas locales (Local 1-3) pueden acceder a cualquier servidor en internet y la DMZ no puede acceder ninguna maacutequina (incluyendo al firewall) Con las reglas de excepcioacuten para DNAT que hacen que se traduzcan las direcciones y permitir la solicitud de conexioacuten traducida para que atraviese el firewall la forma de permitir solicitudes de conexiones a traveacutes de su firewall es usar reglas ACCEPT
Nota
Ya que las columnas SOURCE PORT(S) y ORIG DEST no se usan en esta seccioacuten no se mostraraacuten
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
Usted probablemente querraacute hacer ping entre sus zonas
ACTION SOURCE DEST PROTO DEST PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-requestACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-request
Supoacutengase que usted corre servidores de correo y pop3 en DMZ 2 y un servidor Web en DMZ 1 Las reglas que necesitariacutea son
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local Network
Si usted corre un servidor DNS puacuteblico en 19202177 necesitariacutea agregar las siguientes reglas
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the Internet
Probablemente desearaacute comunicarse con su firewall y con los sistemas DMZ desde la red local se recomienda SSH que por medio del utilitario scp tambieacuten puede realizar tareas de publicacioacuten y de actualizacioacuten de software
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
Peculiaridades y Fines
La discusioacuten anterior refleja nuestras preferencias por el uso de Proxy ARP para nuestros servidores en la DMZ y SNATNAT para los sistemas locales Preferimos usar NAT soacutelo en casos donde un sistema que es parte de una subred RFC 1918 necesita tener su propia direccion IP puacuteblica
Si no lo ha hecho auacuten es buena idea que revise su etcshorewallshorewallconf soacutelo para ver si hay algo de su interes Tambieacuten puede qeu desee ver los otros archivos de configuracioacuten que no ha tocado auacuten para tener una idea para queacute otras cosas puede usarse Shorewall
En caso de que no haya mantenido nota aquiacute se encuentra el conjunto final de los archivos de configuracioacuten para nuestra red ejemplo Soacutelo aquellos archivos que fueron modificados de su instalacioacuten original se muestran aquiacute
etcshorewallinterfaces (Las ldquoopcionesrdquo seraacuten muy especiacuteficas al sitio)
ZONE INTERFACE BROADCAST OPTIONSnet eth0 detect rfc1918routefilterloc eth1 detectdmz eth2 detect
La configuracioacuten descrita requiere que sus interfaces de red se levanten antes de que Shorewall pueda ser iniciado Esto abre una pequentildea ventana de tiempo durante la cual no tiene proteccioacuten de firewall Si remplaza ldquodetectrdquo con las direcciones reales de difusioacuten (broadcast) en las entradas anteriores usted podraacute levantar Shorewall antes de levantar las interfaces de red
ZONE INTERFACE BROADCAST OPTIONSnet eth0 19202255 rfc1918loc eth1 1921682017dmz eth2 1921682027
etcshorewallmasq - Subred Local
INTERFACE SUBNET ADDRESSeth0 192168201029 19202176
etcshorewallproxyarp - DMZ
ADDRESS EXTERNAL INTERFACE HAVE ROUTE19202177 eth2 eth0 No19202178 eth2 eth0 No
etcshorewallnat- Sistema de mi hija
EXTERNAL INTERFACE INTERNAL ALL INTERFACES LOCAL19202179 eth0 1921682014 No No
etcshorewallrules
ACTION SOURCE DEST PROTO DEST COMMENTS PORT(S)ACCEPT net dmz icmp echo-requestACCEPT net loc icmp echo-request
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
ACCEPT dmz loc icmp echo-requestACCEPT loc dmz icmp echo-requestACCEPT net loc1921682014 tcp www Daughters ServerACCEPT net dmz19202178 tcp smtp Mail from InternetACCEPT net dmz19202178 tcp pop3 Pop3 from InternetACCEPT loc dmz19202178 tcp smtp Mail from local NetworkACCEPT loc dmz19202178 tcp pop3 Pop3 from local NetworkACCEPT $FW dmz19202178 tcp smtp Mail from the FirewallACCEPT dmz19202178 net tcp smtp Mail to the InternetACCEPT net dmz19202177 tcp http WWW from InternetACCEPT net dmz19202177 tcp https Secure WWW from InternetACCEPT loc dmz19202177 tcp https Secure WWW from local NetworkACCEPT net dmz19202177 udp domain UDP DNS from InternetACCEPT net dmz19202177 tcp domain TCP DNS from InternetACCEPT loc dmz19202177 udp domain UDP DNS from Local NetworkACCEPT loc dmz19202177 tcp domain TCP DNS from Local NetworkACCEPT $FW dmz19202177 udp domain UDP DNS from the FirewallACCEPT $FW dmz19202177 tcp domain TCP DNS from the FirewallACCEPT dmz19202177 net udp domain UDP DNS to the InternetACCEPT dmz19202177 net tcp domain TCPP DNS to the InternetACCEPT loc dmz tcp ssh SSH to the DMZACCEPT net $FW tcp ssh SSH to the Firewall
DNS
Dado el conjunto RFC 1918 y las direcciones puacuteblicas en esta configuracioacuten soacutelo tiene sentido tener servidores DNS separados interno y externo Usted puede combinar los dos en un uacutenico servidor BIND 9 usando Vistas (Views) Si no estaacute interesado en vistas de Bind 9 puede salta hasta la proacutexima seccioacuten
Suponga que su dominio es foobarnet y quiere que dos sistemas DMZ se llamen wwwfoobarnet y mailfoobarnet y quiere que los tres sistemas locales se llamen winkenfoobarnet blinkenfoobarnet y nodfoobarnet Usted quiere que su firewall sea conocido como firewallfoobarnet externamente y su interface local que sea conocida comos gatewayfoobarnet y su interface a la dmz como dmzfoobarnet Hagamos que el servidor DNS esteacute en 19202177 que a su vez seraacute conocido por el nombre ns1foobarnet
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
El archivo etcnamedconf luciriacutea asiacute
options directory varnamed listen-on 127001 19202177 transfer-format many-answers max-transfer-time-in 60
allow-transfer Servers allowed to request zone tranfers ltsecondary NS IPgt
logging channel xfer-log file varlognamedbind-xferlog print-category yes print-severity yes print-time yes severity info
category xfer-in xfer-log category xfer-out xfer-log category notify xfer-log
This is the view presented to our internal systems
view internal These are the clients that see this view match-clients 192168201029 192168202029 1270008 1920217632 1920217832 1920217932 1920218032 If this server cant complete the request it should use outside servers to do so recursion yes
zone in type hint file introotcache
zone foobarnet in type master notify no
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
allow-update none file intdbfoobar
zone 00127in-addrarpa in type master notify no allow-update none file intdb12700
zone 201168192in-addrarpa in type master notify no allow-update none file intdb192168201
zone 202168192in-addrarpa in type master notify no allow-update none file intdb192168202
zone 17620192in-addrarpa in type master notify no allow-update none file db19202176 zone 17720192in-addrarpa in type master notify no allow-update none file db19202177
zone 17820192in-addrarpa in type master notify no allow-update none file db19202178
zone 17920192in-addrarpa in type master notify no allow-update none file db206124146179
This is the view that we present to the outside world
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
view external match-clients any If we cant answer the query we tell the client so recursion no
zone foobarnet in type master notify yes allow-update none file extdbfoobar
zone 17620192in-addrarpa in type master notify yes allow-update none file db19202176
zone 17720192in-addrarpa in type master notify yes allow-update none file db19202177
zone 17820192in-addrarpa in type master notify yes allow-update none file db19202178
zone 17920192in-addrarpa in type master notify yes allow-update none file db19202179
Aquiacute se encuentra los archivos en varnamed (aquellos que no se muestran usualmente estaacuten incluidos en su distribucioacuten de bind)
db19202176 - Esta es la zona reversa para la interface externa del firewall
Start of Authority (Inverse Address Arpa) for 1920217632 Filename db19202176 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour)
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17620192in-addrarpa 86400 IN PTR firewallfoobarnet
db19202177 - Zona reversa para el servidor www
Start of Authority (Inverse Address Arpa) for 1920217732 Filename db19202177 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17720192in-addrarpa 86400 IN PTR wwwfoobarnet
db19202178 - Zona reversa para el servidor de correo
Start of Authority (Inverse Address Arpa) for 1920217832 Filename db19202178 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
Iverse Address Arpa Records (PTRs) 17820192in-addrarpa 86400 IN PTR mailfoobarnet
db19202179 - Zona reversa para el servidor puacuteblico web de mi hija
Start of Authority (Inverse Address Arpa) for 1920217932 Filename db19202179 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001102303 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet 604800 IN NS ltname of secondary nsgt Iverse Address Arpa Records (PTRs) 17920192in-addrarpa 86400 IN PTR nodfoobarnet
intdb12700 - Zona revers para localhost
Start of Authority (Inverse Address Arpa) for 1270008 Filename db12700 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2001092901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR localhostfoobarnet
intdb192168201 - Zona reversa para la red local Esta soacutelo se muestra a los clientes internos
Start of Authority (Inverse Address Arpa) for 192168201029 Filename db192168201
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet Iverse Address Arpa Records (PTRs) 1 86400 IN PTR gatewayfoobarnet2 86400 IN PTR winkenfoobarnet3 86400 IN PTR blinkenfoobarnet4 86400 IN PTR nodfoobarnet
intdb192168202 - Zona reversa para la interface DMZ del firewall
Start of Authority (Inverse Address Arpa) for 192168202029 Filename db192168202 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002032501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day)
Specify Name Servers for all Reverse Lookups (IN-ADDRARPA) 604800 IN NS ns1foobarnet
Iverse Address Arpa Records (PTRs) 1 86400 IN PTR dmzfoobarnet
intdbfoobar - Zona para los clientes internos
Start of Authority for foobarnet Filename dbfoobar 604800 IN SOA ns1foobarnet netadminfoobarnet ( 2002071501 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) foobarnet Nameserver Records (NS)
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
604800 IN NS ns1foobarnet
Foobarnet Office Records (ADDRESS)localhost 86400 IN A 127001
firewall 86400 IN A 19202176www 86400 IN A 19202177ns1 86400 IN A 19202177mail 86400 IN A 19202178
gateway 86400 IN A 1921682011winken 86400 IN A 1921682012blinken 86400 IN A 1921682013nod 86400 IN A 1921682014
dmz 86400 IN A 1921682021
extdbfoobar - Zona para los clientes externos
Start of Authority for foobarnet Filename dbfoobar 86400 IN SOA ns1foobarnet netadminfoobarnet ( 2002052901 serial 10800 refresh (3 hour) 3600 retry (1 hour) 604800 expire (7 days) 86400 ) minimum (1 day) Foobarnet Nameserver Records (NS) 86400 IN NS ns1foobarnet 86400 IN NS ltsecondary NSgt Foobarnet Foobar Wa Office Records (ADDRESS)localhost 86400 IN A 127001 The firewall itselffirewall 86400 IN A 19202176 The DMZns1 86400 IN A 19202177www 86400 IN A 19202177mail 86400 IN A 19202178 The Local Networknod 86400 IN A 19202179
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
Current Aliases for foobarnet (CNAME)
foobarnet MX Records (MAIL EXCHANGER)foobarnet 86400 IN A 19202177 86400 IN MX 0 mailfoobarnet 86400 IN MX 1 ltbackup MXgt
Algunos Concejos a Manterne en Mente
bull Usted no puede probar su firewall desde adentro Soacutelo porque pueda enviar solicitudes hacia su direccioacuten IP externa en el firewall no significa que la solicitud seraacute asociada con la interface externa o la zona ldquonetrdquo Cualquier traacutefico que genere desde la red local seraacute asociado con su interface local y seraacute tratada como traacutefico loc-gt$FW
bull Las direcciones IP son propiedad de los sistemas no de las interfaces Es un error creer que su firewall es capaz de renviar paquetes solo porque puede hacerle ping a todas las direcciones IP en las interfaces del firewall desde la red local La uacutenica conclusioacuten que puede sacar de tal ping es que el enlace entre su sistema local y el firewall funciona y que probablemente tiene la configuracioacuten de default gateway bien ajustada
bull Todas las direcciones IP configuradas en las interfaces del firewall estaacuten en la zona $FW (fw) Si 1921681254 es la direccioacuten IP de su interface interna entonces puede escribir ldquo$FW1921681254rdquo en una regla pero no puede escribir ldquoloc1921681254rdquo De forma similar no tiene sentido agregar 1921681254 a la zona loc usando una entrada en etcshorewallhosts
bull Los paquetes de respuesta NO siguen automaacuteticamente la ruta reversa hacia el cliente origen que envioacute la solicitud Todos los paquetes son enrutados de acuerdo a la tabla de enrutamiento de la maacutequina en cada paso de su camino Este asunto usualmente salta cuando la gente instala el firewall Shorewall en forma paralela con el gateway existente e intentan usar DNAT por medio del Shorewall cambiando el default gateway del sistema que recibe las solicitudes traducidas Las solicitudes entran por el firewall Shorewall por la interface donde la direccioacuten destino IP fue rescrita pero la respuesta sale sin modificar por medio del viejo gateway
bull Shorewall en siacute mismo no tiene nocioacuten de adentro y afuera Estos conceptos se incorporan en coacutemo se configure Shorewall
Arrancando y Deteniendo el Firewall
El proceso de Instalacioacuten configura su sistema para que arranque Shorewall al arrancar su sistema (boot)
El firewall se arrancar usando el comando ldquoshorewall startrdquo y se detiene usando el comando ldquoshorewall stoprdquo Cuando el firewall estaacute detenido el enrutamiento estaacute habilitado hacia aquellas maacutequinas que tienen una entrada en etcshorewallroutestopped Un firewall en ejecucioacuten puede reiniciarse con el comando ldquoshorewall restartrdquo Si desea eliminar totalmente cualquier elemento de Shorewall de su configuracioacuten Netfilter use ldquoshorewall clearrdquo
Edite el archivo etcshorewallroutestopped y configure aquellos sistemas que usted desee que esteacuten disponibles para que accedan al firewall cuando eacuteste esteacute detenido
Precaucioacuten
Si usted estaacute conectado a su firewall desde internet no mande el comando ldquoshorewall stoprdquo a mesno que haya agergado una entrada para la IP desde la cual se ha conectado en etcshorewallroutestopped Tampoco se recomienda usar ldquoshorewall restartrdquo es mejor crear una configuracioacuten alterna y probarlar usando el comando ldquoshorewall try
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-
- Shorewall
- Instalacioacuten y Actualizacioacuten de Shorewall
-
- Importante
- Nota
- Instalar usando RPM
-
- Precaucioacuten
- Nota
- Nota
- Alerta
-
- Instalar usando tarball
- Instalar usando lrp
- Instalar usando deb
-
- Importante
-
- Notas Generales Acerca de la Actualizacioacuten Shorewall
- Actualizando con RPM
-
- Nota
- Nota
-
- Actualizando con tarball
- Actualizando con lrp
-
- Importante
- Nota
-
- Configurando Shorewall
- DesinstalarVolverAtraacutes
- Firewall Baacutesico Dos-Interfaces
- Introduccioacuten
-
- Precaucioacuten
- Requerimientos de Sistema
- Convenciones
-
- PPTPADSL
- Conceptos Shorewall
-
- Alerta
- Importante
-
- Interfaces de Red
-
- Alerta
- Tip
- Tip
- Tip
-
- Direcciones IP
-
- Alerta
-
- Enmascaramiento IP (SNAT)
- Desviacuteo de Puerto (DNAT)
-
- Importante
-
- Domain Name Server (DNS)
- Otras Conexiones
-
- Importante
-
- Algunos Concejos a Mantener en Mente
- Arrancando y Deteniendo Su Firewall
-
- Importante
- Alerta
-
- Lectura Adicional Recomendada
- Agregando un Segmento Inalaacutembrico a su Firewall Dos-Interfaces
-
- Precaucioacuten
-
- Guiacutea de Configuracioacuten de Shorewall
-
- Original de Tom Eastep traduccioacuten Guillermo Goacutemez (Neotech Venezuela)
- Precaucioacuten
- Introduccioacuten
-
- Precaucioacuten
- Precaucioacuten
-
- Conceptos de Shorewall
-
- Alerta
- Importante
- Importante
-
- Interfaces de Red
-
- Precaucioacuten
-
- Direccionamiento Subredes y Enrutamiento
-
- Direcciones IP
- Subredes
- Enrutamiento
- Address Resolution Protocol (ARP)
- RFC 1918
- Alerta
-
- Configuracioacuten De Su Red
-
- Enrutando
- No enrutando
-
- SNAT
- DNAT
-
- Importante
-
- Proxy ARP
-
- Precaucioacuten
-
- NAT uno-a-uno
-
- Reglas
- Nota
- Nota
- Peculiaridades y Fines
-
- DNS
- Algunos Concejos a Manterne en Mente
- Arrancando y Deteniendo el Firewall
-
- Precaucioacuten
-