FIREWALL

1 Firewall = Cortafuegos, un sistema de protección

1.1 ¿Para qué un Firewall?

1.2 Tipos de Firewall y tipos de medidas

1.2.1 Tipos de medidas restrictivas

1.3 Control de sucesos

1.4 Características diferenciadoras de los Firewall a nivel de red

1.5 Conceptos a tener en cuenta

2 Firewall en Entornos Windows: Norton Personal Firewall 2001

2.1 El programa

2.2 Protección de la información personal

2.1.1 La información personal... siempre personal.

2.1.2 Las 'cookies'... ¿qué hacen?

2.3 Protección contra hackers.

2.4 Configuración

2.4.1 Configuración del Firewall

2.5 Conclusiones

2.6 Requisitos técnicos

3 Firewall en Entornos UNIX/LINUX

3.1 Requerimientos de Hardware

3.2 Requerimientos Software

3.2.1 Requerimientos de kernel

3.3. Procedimiento de Configuración

3.3.1 Compilando el núcleo (kernel)

3.3.2 Configuración de tarjetas de red y/o ppp y las direcciones de red.

3.3.3 Prueba de la red

3.3.4 Asegurando el cortafuegos (firewall)

3.4 Procedimiento de Instalación

3.4.1. Reglas de Filtrado

3.4.2. Copnstrucción de Reglas de Filtrado

3.4.3. Orden de Aplicación de las Reglas

3.4.4. Activando y Desactivando el Firewall

3.5 Ejemplos y Pruebas

3.5.1. Ejemplo en el que sólo se admite paquetes de entrada para conexiones HTTP

3.5.2 Ejemplo de archivo rc.firewall

3.5.3 Pruebas


 

1. Firewall = Cortafuegos, un sistema de protección

Un Firewall no es otra cosa que un cortafuegos. Acepción adaptada de la terminología de los servicios
contra incendios, que cuentan con una técnica especial para poder controlar fuegos de gran intensidad y
evitar su propagación.
Un Firewall en informática es muy similar porque permite controlar los accesos no deseados mediante
políticas de seguridad que pueden ser definidas por el usuario, tanto a nivel local, como prestando
servicios en red.
Para ello existen dos modalidades de aplicaciones Firewall: las destinadas a los usuarios individuales, y
aquellas diseñadas para empresas y para ser instaladas en proxys (equipos que sirven como punto de
conexión para otros conectados en red).
Los primeros cortafuegos (firewall) estuvieron basados en sistemas UNIX sin enrutamiento con conexión
a dos diferentes redes. Una tarjeta de red conectada con una dirección válida a la red interna y otra tarjeta
(o acceso) con una dirección IP válida ante Internet. Para alcanzar Internet desde la red privada era
necesario entrar en el servidor UNIX (cortafuegos) y utilizar los recursos de este para alcanzar Internet.
Los Firewall trabajan sobre protocolos TCP/IP, que permiten a los equipos hablar entre ellos sin importar
el sistema operativo y programas que utilicen. El TCP/IP permite a las personas con Windows 95
comunicarse con otras personas con sistemas operativos UNIX o Macintosh.
La información transmitida no se envía de golpe sino que ha de ser partida en diferentes paquetes de
tamaño determinado. Es el propio sistema el que determina en cuántos paquetes ha de ser partida la
información, para que aquéllos sean homogéneos. Y es precisamente en estos paquetes en donde un
hacker puede colarse para cambiar o introducir un nuevo parámetro (enviando la información modificada
al último de los paquetes que casi nunca se encuentra lleno) para poder tener acceso posteriormente a
nuestro equipo.
Por lo que atañe a los sistemas operativos Windows, el programa Winsock es el que se encarga de
gestionar estos paquetes de información, para posteriormente enviarlos a otras aplicaciones, incluyendo al
firewall si es que existiera uno instalado en el equipo.
Volver al Indice ...

1.1. ¿Para qué un Firewall?

El firewall es un sistema que refuerza y fortalece las políticas de control de acceso. Estas políticas están
establecidas en función de criterios que habitualmente las empresas programadores determinan a priori
dependiendo de las incidencias y de los casos más habituales en la red. Criterios que normalmente regulan
el tráfico entre una red interna (que suele ser de confianza, ya que solemos conocer a quienes se
encuentran conectados), y otra red externa (que suele ser de menor confianza, porque a ella puede
conectarse cualquier usuario).
Así, los firewall se emplean habitualmente para proteger a las redes internas ante accesos no autorizados
que se realicen vía Internet o mediante otra red externa.
En el momento en el que se tiene instalada la aplicación Firewall comenzará a aplicar los criterios de
restricción determinados, bloqueando todo el tráfico que no haya sido autorizado entre el sistema de
confianza (una red interna o nuestro propio equipo en solitario) y el sistema de dudosa confianza (Internet
como el caso más propio). Un proceso -llamado filtrado- se efectuará constantemente y sin que se detecte
una ralentización en el equipo, y que permitirá o denegará el acceso a cualquier parte de nuestro equipo.
Volver al Indice ...

1.2. Tipos de Firewall y tipos de medidas

Por extensión, podemos denominar firewall a cualquier dispositivo que controle el tráfico de la red
aplicando medidas de seguridad. Pero en realidad hay que discernir entre tres grandes variantes, contando
cada una de ellas con diferentes métodos para proteger los recursos de la red.
1. Elementales o básicos. Trabajan sobre routers en los niveles más bajos del protocolo de la red
(Winsock). Filtran los paquetes. A estos firewall también se les denomina "screening routers").
2. Ubicados en portales servidor Proxy. Suelen emplear niveles altos de protocolo, dotando de servicios
proxy a redes externas para clientes. También monitorizan y controlan el tráfico mediante el rastreo de
cierta información dentro de los paquetes.
3. Con técnicas de inspección, que comparan los diferentes patrones de bits de los paquetes respecto de
un paquete que se considere conocido y de entera confianza.
El filtrado de paquetes es uno de los elementos más importantes de este sistema de contramedidas de
seguridad, permitiendo ser configurado -al uso de cada equipo- de manera que pueda denegar o permitir
determinados tipos de paquetes, y su paso a través del Servidor Proxy (Proxy Server).
A la hora de configurar este bloqueo o desbloqueo de información, puede realizarse de forma específica
(p.e., todas aquellas que provengan de una dirección de internet determinada, sea de correo electrónico, o
dominio), o de manera específica (p.e., para el bloqueo de todos los paquetes que lleguen de un host de
Internet determinado).
Volver al Indice ...

1.2.1. Tipos de medidas restrictivas

En primer lugar, podemos encontrarnos con una característica propia de los firewalls llamada filtrado
dinámico (dynamic) de paquetes, que va a permitir la permisividad del Firewall para poder transmitir y/o
recibir datos. Finalizado el proceso, cierra el servicio de nuevo y elimina la redundancia y el riesgo
minimizando el número de puertos abiertos.
Un segundo tipo de medida es el denominado filtrado estático (static) de paquetes. Incómoda pues
requiere de configuración manual realizada por el propio usuario, que ha de establecer los paquetes de
información que pueden ser cedidos o no. Además ha de conocer los puertos desde lo que han de
transmitirse, y las rutas de salida a las que dirigirse.
Volver al Indice ...

1.3. Control de sucesos

Un Firewall, como cualquier buen sistema de seguridad, ha de permitir el seguimiento de los registros
anómalos y permitidos realizados hacia y desde el sistema. Un efectivo método de control, que permite
establecer nuevos parámetros restrictivos, y/o anular otros que impiden el natural acceso de los datos en
cualquiera de las dos direcciones (recepción o envío).
El control de sucesos se realiza mediante el monitoreo de las instancias de la aplicación, y queda
almacenado en archivos de registro (log), que pueden ser editables, imprimibles y guardados en formato
de texto.
Las características básicas que debemos de encontrar en el sistema de registro de actividades de la
máquina han de ser las siguientes:
Información de servicio (Service Information) - Con la fecha, y hora.

Información remota (Remote Information)- Incluyendo la/s dirección/es IP del presunto
Intruso, así como su puerto y el protocolo de comunicación utilizado.

Información Local (Local Information) - Mostrando la dirección IP de destino y su puerto de
acceso.

Filtrado de Información (Filter Information)- referenciando la forma en que ha actuado el filtro
que utilizamos y qué adaptador de red lo hizo.

Paquetes de información (Packet Information)- Suele estar expresado en formato hexadecimal, y
muestra las primeras líneas (de identificación) de cada uno de los paquetes.
Volver al Indice ...

1.4. Características diferenciadoras de los Firewall a nivel de red

Algunos elementos a tener en cuenta:
1. Filtran el tráfico siguiendo un patrón establecido por la fuente (Source) y por la IP de destino
(Destination), por la asignación del puerto TCP y por el tipo de paquete.
2. Habitualmente son enrutadores IP especializados. Rápidos y eficientes, y los usuarios de la red no
notan que el programa esté funcionando. Cabe la posibilidad de poder guardar información interna en
cualquiera de los paquetes que estén tramitándose, incluso los contenidos de ciertos datos.
3. Ofrecen cierta ventaja contra intrusos que sólo quieren acceder al monitoreo del equipo. Suelen acceder
tan sólo a programas del tipo Winsock.
4. Es conveniente aprender a diferenciar entre una red (network) y el nivel de red (network level) del
sistema operativo.
5. IMPORTANTE: Un PC no es una red. No hay red que proteja un solo PC.
6. Tampoco un programa firewall de nivel de red para un solo PC es un firewall de red. No protege una
red sino un solo equipo. El término firewall de nivel de red (network level firewall) se refiere al programa
que opera en un nivel de red del sistema operativo del ordenador.
7. El término firewall de red (network firewall), tiene que ver con la organización de ordenadores
conectados en red, en donde uno de los equipos sería considerado bajo configuración de host baluarte
(bastion host). Éstos suelen ser los tipos de firewall más comunes. Como acotación baste decir que el
término se acuña por referencia a los castillos Europeos, a modo de analogía que describiría el
funcionamiento del firewal, por cuanto al foso y al modelo de puente levadizo. El firewall sería en esta
ocasión el foso, o el puente levadizo (sistema preventivo-defensivo), mientras que el castillo sería la red
que queremos proteger. El papel de Bastion host lo toma un ordenador que disponga de, al menos, una
interfaz de acceso a la red de confianza, y otra con la red de dudosa confianza. El sistema funciona
mediante permisos, de forma que sólo el equipo bastión es quien establece el cómo y cuándo pueden
pasarse los paquetes de información. Este sistema no suele trabajar de forma independiente, sino que
forma parte de un entramado de Firewall más complejo.
Diferentes niveles de seguridad
Los firewall "screened host", emplean redirecciones a, al menos, una conexión a la red de confianza y
otra conexión con el "bastion host". El redireccionamiento funciona a modo de pantalla previa, para el
filtrado de paquetes. Una vez analizada toda la información redirige todo el tráfico IP al bastion host.
A la hora de configurar el redireccionamiento hay que tener en cuenta las normas de filtrado precedentes,
así como las direcciones IP a las que tenemos permiso de acceso o a las que tenemos denegado el acceso.
La ventaja que nos ofrece el redireccionamiento es que disminuye el tráfico que pudiéramos generar, ya
que quien se encarga de soportarlo es el equipo que actúa como bastion host. Una solución que también
favorece el trabajo de éste ya que no tiene que estar buscando entre los diferentes equipos conectados los
datos y los paquetes de información que han de ser soportados.
El paso siguiente dentro de la terminología Firewall es el de los firewall de nivel de aplicación
(application level): programas que operan entre la red a proteger y la red externa.
Su funcionamiento no es otro que el de evitar el contacto directo entre los paquetes de información que
fluyen localmente (dentro de la red) y los que fluyen externamente (desde y hacia fuera de la red).
Lógicamente los informes que puede ofrecer serán mucho más detallados. Este tipo de Firewall sólo
funciona ejecutándose localmente (desde un equipo). Esto reduce posibles riesgos de intervención remota,
ofrece mayor seguridad. Aunque suele ser conveniente la convivencia con otro Firewall de nivel superior.
Volver al Indice ...

1.5. Conceptos a tener en cuenta

- Política: Normas que rigen el funcionamiento de los firewalls y que se configuran por parte del usuario.
Establecen la permisividad o la denegación del servicio para el envío y la recepción de los paquetes de
información.
- Es recomendable utilizar un firewall de nivel de aplicación como complemento de firewall de red.
Ofrece mayor seguridad.
- Los firewall sólo bloquean lo que se les configure que bloqueen.
- El firewall y la política del firewall son dos cosas diferentes.
- La configuración del firewall establece qué paquete tiene el tamaño incorrecto para un determinado
puerto, o qué paquete proviene de una fuente no autorizada. En el caso de que el paquete haya llegado al
equipo, únicamente el firewall determinará si mantendrá el puerto abierto para recibir otros paquetes de
TCP/IP, y si el paquete se usará en otras aplicaciones.
- Es altamente recomendable que se actualice el sistema operativo con los parches de seguridad de las
aplicaciones.
- Es importante realizar periódicamente copias de backup de todos los datos importantes. Esta copia no
debe de tener acceso a la red, ni tiene que ser visible para nadie.
- No se deben aceptar programas o archivos de origen desconocido.
- La mejor ayuda para un Firewall es su trabajo conjunto con un antivirus. Un Firewall no es un antivirus.
Es recomendable, antes de ejecutar nada, analizar los archivos descargados con la aplicación antivirus.
Volver al Indice ...

2. Firewall en Entornos Windows: Norton Personal Firewall 2001

2.1. El programa

Norton Personal Firewall 2001 (de Symantec) incluye dos aplicaciones relativas a la seguridad: Norton
Personal Firewall y Norton Privacy Control.
Capaces de monitorear Internet y ofrecer la seguridad necesaria para poder navegar con tranquilidad, al
salvaguardar los datos de nuestro equipo e impedir que terceros no deseados puedan hacerse con nuestros
datos, sin nuestro consentimiento.
Se trata de un programa sencillo pero muy completo. La esencia radica en la protección y en la seguridad
de la información personal almacenada en nuestro equipo, pero también en el hecho de impedir que estos
datos confidenciales no puedan ser accesibles por parte de nadie desde la red.
Un firewall es un programa que actúa a modo de filtro, bloqueando o permitiendo determinadas
conexiones y transmisiones de datos desde o hacia Internet. Con este filtrado casi nadie no deseado puede
acceder a la información que el usuario quiera proteger.
Volver al Indice ...

2.2. Protección de la información personal

2.1.1. La información personal... siempre personal.

La privacidad on line es una de las premisas más importantes a tener en cuenta a la hora de iniciar la
navegación. Esta herramienta permite establecer qué datos son los que han de protegerse y cederse o
mostrarse en determinados sitios web (como por ejemplo los números de nuestra tarjeta de crédito). En el
caso de que algunos de los datos fueran a ser enviados ha algún sitio no seguro o que no garantice la
privacidad de los mismos, Norton Personal Firewall 2001 alerta mediante un mensaje con el que
podremos hacer:
1. Permitir el envío de los datos únicamente para esta ocasión. Es la primera de las opciones que nos
encontramos, y 'vulnera' los límites de seguridad que se establecieron al configurar el programa, para
permitir que los datos solicitados sean enviados sólo en esta ocasión.
2. Impedir el envío de datos. Podría considerarse una pregunta redundante si se estableció -durante la
configuración de las opciones del programa- que no se enviara ninguno. Pero creo que no es necesario
recordar que en cualquier momento podemos intentar dar nuestros datos (para realizar una compra en
Internet, por ejemplo), y que esto puede producirse diez minutos después de haber instalado el programa,
como diez días después, o diez semanas más tarde. Y por lo tanto olvidar que se señaló esta opción, y
también dónde encontrar la forma para desactivarla. Por lo menos el programa nos recuerda los
privilegios que establecimos en su momento.
3. Configurar una norma para el futuro. En el caso de que al establecer las opciones generales de
acceso del programa, omitiéramos u olvidáramos configurar un acceso, en el momento en el que
intentáramos enviar datos confidenciales a la red, el programa avisaría con esta tercera opción. Ésta nos
permite establecer las condiciones por las cuales nuestros datos puedan ser enviados a un sitio web en
concreto. Aunque hay que tener en cuenta que nosotros podemos no saber que a ese sitio se accede a
través de diferentes proxis o rutas de acceso, por lo que puede que -en el momento de configurar el
acceso- nos solicite más de un permiso. A partir de este momento, y aunque esté señalada la opción de
seguridad, siempre se permitirá el envío de nuestros datos personales y confidenciales a ese sitio.
Volver al Indice ...

2.1.2. Las 'cookies'... ¿qué hacen?

Las "cookies" son pequeños archivos de texto que apenas ocupan 1 Kb. Suelen almacenarse dentro de
nuestro ordenador y con ellas algunas páginas web 'nos reconocen' como usuarios, además de que
controlan por dónde y qué páginas navegamos. También mantienen actualizado nuestro carro de la
compra, en el caso en el que estemos realizando una compra on line, o eliminan la necesidad de tener que
darnos de alta en sitios en donde se requiera un login. Pero también aumentan el riesgo de que nuestra
privacidad se vea comprometida.
Con Norton Personal Firewall, es posible bloquear bajo -demanda o predeterminadamente- estas cookies
desde el principio.
Volver al Indice ...

2.3. Protección contra hackers.

Este programa, además de impedir el acceso a ?cookies?, protege contra intrusiones de programas como
Back Orifice y Net Bus, es decir impide de forma efectiva el acceso remoto.
Volver al Indice ...

2.4. Configuración

Symantec ha implementado una tecnología dinámica que permite al programa adaptarse a las necesidades
y rutinas del nuestro ordenador, puesto que realiza un análisis y un reconocimiento de las aplicaciones
más comunes que se emplean cuando estamos navegando, y configura las opciones del firewall para cada
una de ellas. Es decir. Imaginemos que empleamos un programa de descarga como Go!Zilla. Si la
conexión habitual se realiza por uno sólo de sus servidores, Norton Personal Firewall 2001 establece un
permiso para este acceso.
Volver al Indice ...

2.4.1. Configuración del Firewall

Alta: Bloquea cualquier comunicación (en ambos sentidos) siempre que el usuario no lo haya permitido.
Sin embargo, hay que establecer determinadas reglas personalizadas para cada aplicación que pueda
acceder a Internet.
Media: Bloquea una larga lista de puertos que están predeterminados y seleccionados como
potencialmente peligrosos, por encontrase en ellos programas dañinos. Sin embargo, también puede
bloquear el acceso a Internet de determinadas aplicaciones que utilicen estos puertos para conectarse.
Desde la interfaz principal permite también configurar el tipo de nivel que queremos usar en cuanto a
los accesos de privacidad y de seguridad personales en función de los siguientes parámetros:

Seguridad
Alta
Bloquea cualquier cosa hasta que se le permita el acceso. Esta opción del firewall se establece en el
máximo.
Los controles ActiveX y los applets de Java quedan bloqueados y por cada ocasión en el que haya de
activarse alguno el programa solicita autorización. Esta opción del firewall se establece en media.
Media
Bloquea cualquier cosa hasta que se le permita el acceso. Esta opción del firewall se establece en el
máximo.
Los controles ActiveX y los applets de Java tiene acceso libre, permitiendo su ejecución a discreción.
Baja
Bloqueo sólo de aplicaciones maliciosas conocidas. Esta opción del firewall se establece en media. Los
controles ActiveX y los applets de Java tiene acceso libre, permitiendo su ejecución a discreción.

Applets Java
Alta
Bloquea en el navegador predeterminado la descarga de cualquier applet de Java o de controles ActiveX
desde Internet.
Es la opción más segura y recomendada. Sin embargo impedirá que algunos sitios web se vean como
fueron diseñados.
Media
Activa el asistente para las reglas de Java/ActiveX. Esta opción permite establecer bloqueos y/o accesos
personalizados para cada uno de los applet Java o controles ActiveX que quieran ser descargados o no. Es
una opción más engorrosa por el hecho de tener que estar casi cada dos por tres configurando la
aplicación (bajo demanda, por supuesto), pero permite visualizar los sitios seguros (o que así lo creamos
nosotros) con tranquilidad y por completo.
Baja
Permiso sine die para los applets Java y los controles ActiveX.
Volver al Indice ...

2.5. Conclusiones

¿Es necesario un programa de este tipo para nuestro uso personal?
Millones de ordenadores se conectan diariamente a Internet, y éste es un número que aumenta a diario.
Cuando nos conectamos a la red de redes es posible mantener conexiones con estos equipos, y también
que se realice el proceso a la inversa. Las conexiones que se realicen de forma insegura pueden dejar a
nuestro ordenador indefenso y 'abierto' a ataques producidos por hackers, virus, caballos de troya, o sitios
web que dispongan de códigos que puedan afectar al contenido de nuestro equipo.
En ocasiones su uso provoca la denegación de acceso a determinados servicios de web (como es el caso
de acceso a suscripciones de correo que necesitan de 'validación' de usuario por cookies). Una de las
ventajas de Norton Personal Firewall 2001 es que ofrece la posibilidad de establecer ciertas normas o
reglas para permitir el acceso a determinadas conexiones o bloquearlas. Normas que pueden ser
modificadas en cualquier momento y a conveniencia del usuario.
Norton Personal Firewall 2000-2001, ofrece la posibilidad de establecer un límite de seguridad que, en mi
opinión, es necesario que exista en cada equipo. Aunque a veces pueda resultar engorrosa la
configuración de reglas para cada acceso, o que veamos reducidas nuestras opciones de navegación, no
cabe duda de que quien lo pruebe quedará tan asombrado como yo lo estoy, al comprobar la cantidad de
cookies y demás accesorios a los que sometemos a nuestra máquina cada día. Por lo que a seguridad se
refiere, puedo decir que sí me ha garantizado un margen en el que he mantenido a mi ordenador a salvo.
Volver al Indice ...

2.6. Requisitos técnicos

Requisitos para PC, mínimos

Para Windows 2000 Workstation/Windows NT
Procesador Intel Pentium o mejor.
Windows 2000 Profesional Workstation o Windows NT 4.0 Workstation, con
Service Pack 3 o superior.
32 MB de RAM (48 MB recomendadas).
10 MB de espacio disponible en disco.
Unidad de CD-ROM.
Microsoft Windows con soporte a Internet.
Explorador de Internet Microsoft o Netscape 4.0 o superior.

Para Windows 95/98/Me
Procesador del tipo Intel Pentium o superior (de por lo menos 133 MHz).
Windows 95 B, Windows 98, Windows 98 SE, o Windows Millennium.
24 MB de RAM (32 MB recomendadas).
10 MB de espacio disponible en el disco duro.
UNidad de CD-ROM. · Microsoft Windows con soporte a Internet.
Explorador de Internet Microsoft o Netscape 4.0 o superior.

Requisitos para Mac, mínimos
Procesador PowerPC.
Mac OS 8.1 o superior.
24 MB de memoria RAM.
3 MB libres de espacio en el disco.
Unidad de CD-ROM.
Conexión a Internet.
Volver al Indice ...

3. Firewall en Entornos UNIX/LINUX

3.1. Requerimientos de Hardware

Los cortafuegos de filtrado no son exigentes en recursos de hardware. Son tan sencillos como los
enrutadores simples.
Los requerimientos de hardware necesarios son:
1. Un 486-DX66 con 32 MB de memoria RAM
2. Al menos 250 MB de disco duro
3. Conexión a la red
Si requieres un servidor proxi que manejará cantidades de tráfico, deberás usar un sistema con mayor
configuración en hardware. Esto es debido a que por cada usuario que se conecte a el sistema este creará
otro proceso. Dependiendo de la cantidad de usuarios que se conecten al sistema usted deberá
dimensionar su equipo.
Volver al Indice ...

3.2. Requerimientos de Software

3.2.1. Requerimientos de kernel

Para crear un cortafuegos de filtrado, no se requiere ningún software especial. Linux lo hace. El firewall
que está en el kernel del linux ha cambiado diversas veces. Si estas usando un kernel viejo debes
conseguir una copia reciente. Los núcleos (kernel) viejos no soportan más IPFWADM. Si usas un kernel
2.2.13 o superior, estarás usando el ipchains desarrollado por http://www.rustcorp.com/linux/ipchains/ Si
usas el kernel 2.4 hay nuevas utilidades de cortafuegos.
Volver al Indice ...

3.3. Procedimiento de Configuración

Instalar LINUX con configuración de servidor y a medida que avance, cerrar los servicios que no necesite
editando el archivo /etc/inetd.conf. Para mayor seguridad desinstale los servicios que no requiera. Como
algunas distribuiciones no tienen el kernel preparado como se requiere para el uso de herramientas de
cortafuegos (Firewall), deberá compilarlo de acuerdo con sus necesidades.
Volver al Indice ...

3.3.1. Compilando el núcleo (kernel)

Arranque con una instalación limpia mínima de su distribución LINUX. Cuanto menos software haya
cargado, menos serán los huecos, puertas traseras o bugs que introducirán problemas de seguridad en su
servidor.
Consiga un kernel estable. Para este caso tenemos el kernel 2.2.15. Por lo tanto la documentación aquí
realizada estará basada para este kernel.
Use el comando "make menuconfig" para editar los valores de configuración del kernel.
Volver al Indice ...

3.3.2. Configuración de tarjetas de red y/o ppp y las direcciones de red.

Configuración de la(s) tarjeta(s) de red y protocolo ppp
Configuración de las direcciones de red.
La meta es proveer dos conexiones de red a sus cortafuegos de filtrado. Una es sobre internet y otra es
sobre su LAN.
Si no requiere que Internet acceda a su red privada, no es necesario utilizar una dirección válida ante
Internet. Puedes usar una dirección de los rangos destinados para redes privadas pero para ello requiere
utilizar IP masquerading, que convierte los paquetes internos con una dirección IP válida ante
INTERNET, lo que hace que su red sea más segura.
Debe tener una dirección IP válida ante Internet. Esta dirección puede ser asignada permanentemente a tu
ordenador por un ISP mediante un enlace dedicado o puede ser dinámica asignada a través de una
conexión conmutada (no dedicada) a través de un proceso PPP (point to point protocol).
Volver al Indice ...

3.3.3. Prueba de la red

Asegúrese que las siguientes pruebas se realizan y que se obtienen resultados favorables:
Chequee que su(s) tarjeta(s) de red y/o el acceso conmutado al ISP (enlace a través de ppp) estén activos
y bien configurados. Para verificar lo anterior utilice el comando "ifconfig".

ifconfig
lo
Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:1620 errors:0 dropped:0 overruns:0
TX packets:1620 errors:0 dropped:0 overruns:0
collisions:0 txqueuelan:0

eth0
Link encap:10Mbps Ethernet HWaddr 00:00:09:85:AC:55
inet addr:192.168.1.18 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1000 errors:0 dropped:0 overruns:0
TX packets:1100 errors:0 dropped:0 overruns:0
collisions:0 txqueuelan:0
Interrupt:12 Base address:0x310

ppp0
Link encap:10Mbps Ethernet HWaddr 00:00:09:80:1E:D7
inet addr:XXX.XXX.XXX.XXX Bcast:XXX.XXX.XXX.XXX Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1110 errors:0 dropped:0 overruns:0
TX packets:1111 errors:0 dropped:0 overruns:0
collisions:0 txqueuelan:0
Interrupt:15 Base address:0x350

-Verifique la tabla de rutas en sus sistema. Para ello haga uso del comando "route -n"

#route -n
Kernel routing table
Destination Gateway Genmask Flags MSS Window Use Iface
24.94.1.0 * 255.255.255.0 U 1500 0 15 eth0
192.168.1.0 * 255.255.255.0 U 1500 0 0 eth1
127.0.0.0 * 255.0.0.0 U 3584 0 2 lo
default 24.94.1.123 * UG 1500 0 72 eth0

-Asegúrese que cada ordenador de la red vé el cortafuegos (firewall). Para ello utilice el comando "ping".

ping 192.168.1.18
Haciendo ping a 192.168.1.18 (linux.dominio.com) con 32 bytes de datos
Respuesta desde 192.168.1.18: Bytes=32 Tiempo < 10 ms TDV 128

-Haga ping desde los otros equipos a la dirección externa del cortafuegos. Esto no debería funcionar, es
decir, no debe recibir respuesta. Si recibe respuesta, tiene el masquerading o el IP forwarding habilitado.
Deshabilítelos e intente de nuevo. Se requiere conocer que el filtrado está en su lugar. Para el kernel
2.1.102 o superiores utilice el siguiente comando

echo "0" > /proc/sys/net/ipv4/ip_forward

Habilite el IP forwarding y/o masquerading nuevamente con el siguiente comando. Usted deberá ser
capaz de hacer ping a cualquier sitio de internet desde cualqueir equipo de la red.

echo "1" > /proc/sys/net/ipv4/ip_forward
Volver al Indice ...

3.3.4. Asegurando el cortafuegos (firewall)

Un cortafuegos no es algo bueno si el sistema está construido sobre un sistema abierto para permitir
ataques. Un Cracker puede ganar acceso a través de un servicio que no es del firewall y modificar el
sistema de acuerdo con sus necesidades. Para que esto no suceda, es necesario apagar los servicios
innecesarios.
El archivo /etc/inetd.conf contiene la configuración del demonio "inetd", el cual controla una serie de
demonios del servidor y los arranca en la medida que son requeridos por paquetes que llegan por puertos
permitidos.
Se deben deshabilitar servicios como echo, discard, daytime, chargen, ftp, gopher, shell, login, exec, talk,
ntalk, pop-2, pop-3, netstat, systat, tftp, bootp, finger, cfinger, time, swat y linuxconfig (si tiene uno en su
sistema).
Para deshabilitar un servicio, basta con comentar la línea con el símbolo #. Para que los cambios tengan
efecto sobre el sistema, utilice el comando "kill -HUP <pid>", donde pid es el identificador del proceso
del inetd.
Para probar que lo anterior funcionó, realice un telnet al puerto 15 del firewall (netstat). Si sale algún
mensaje el servicio no ha sido deshabilitado. También puede crear el archivo /etc/nologin, cuando este
archivo está creado, no permite hacer login a ningún usuario (sólo root puede hacer login).
Volver al Indice ...

3.4. Procedimiento de Instalación

El procedimiento de instalación del cortafuegos se basa en la configuración de filtrado IP con el comando
IPCHAINS. IPCHAINS es el código reescrito del IPFWADM (utilizado para filtrar paquetes en linux con
versiones de kernel inferiores a 2.1.202). No obstante para los kernels más actuales (2.4.x)se puede utlizar
tanto el paquete ipchains como otro denominado iptables. Este último es algo más complejo (aunque más
versátil) y no se puede utilizar con kernels estables y muy utilizados como 2.2.x

3.4.1 Reglas de Filtrado

Para instalar un firewall en nuestro equipo sólo precisamos de un kernel con las opciones adecuadas  y el
paquete ipchains. Es este paquete el que deberemos usar para introducir en el kernel las reglas de filtrado
adecuadas para que funcione filtrando exactamente las conexiones que nosotros deseemos.
Podemos ejecutar ipchains con los parámetros adecuados en cada caso e introducir a mano así cada una de
las reglas de filtrado. Pero resultaría un trabajo algo absurdo, ya que al apagar nuestro equipo las reglas se
perderían y al volverlo a arrancar tendríamos que introducirlas a mano de nuevo. Lo usual es crear un fichero
que se ejecute en el arranque, como /etc/rc.boot/ipchains que editaremos (deberemos editarlo com root)
introduciendo en él las reglas necesarias.
Deberemos consular la documentación de nuestra distribución al respecto para decidir el lugar más adecuado
para instalar nuestro script, puesto que quizá nos interese tenerlo activo sólo cuando estemos conectados a
Internet y no el resto del tiempo. Una vez creado bastará con asegurarnos de que tiene permisos de ejecución
adecuados, se los damos ejecutando, también como root:
chmod 600 /etc/rc.boot/ipchains
Lógicamente siempre que lo modifiquemos habrá que asignar de nuevo estos permisos. Es importantew el
asunto de los permisos en este fichero, ya que no queremos que nadie que entre como usuario normal en
nuestro sistema (tanto directamente como en remoto) pueda modificarlo. Al colocar dicho fichero ipchains
en el directorio /etc/rc.boot/ conseguiremos que nuestro firewall se lance cada vez que arrancamos nuestro
equipo.
Si por ejemplo tenemos una conexión a Internet utilizando un modem, podemos hacer que se lance el firewall
cuando nos conectamos Internet, en cuyo caso bastaría colocar el fichero ipchains en el directorio
/etc/network/if-up.d/ (aunque la ubicación de estos ficheros es conveniente que se consulte en el manual de
nuestra distribución, ya sea debian, mandrake, ...).

3.4.2 Construcción de Reglas de Filtrado

Las reglas de filtrado son las líneas de ejecución que colocamos en el fichero ipchains o bien ejecutamos a mano.
Para saber cómo construirlas podemos acudir a la página man de ipchains. en general son reglas bastante sencillas,
en cada línea lo primero que aparece es el ejecutable, ipchains con su path. Lógicamente es él quien sabe cómo
añadir las reglas a las cadenas del kernel. Ejecutamos por tanto ipchains y le pasamos una serie de parámetros
que constituirán la regla concreta que queramos añadir.
 

A continuación se describe brevemente las funciones básicas que se pueden realizar para la administración de un
cortafuegos basado en IPChains.
Las operaciones para trabajar sobre una cadena entera son:
- Crear una cadena nueva (-N)
- Borrar una cadena vacia (-X)
- Adicionar una nueva regla (-A)
- Cambiar la política para una cadena propia (-P): indicando '-P' sobre una cierta cadena, indicaremos la 'polítcia' por
  defecto para esa cadena, o sea, qué se decide hacer con un paquete si ninguna de las reglas que le hayamos dicho
  especifica nada. por defecto la poliítica para las tres cadenas iniciales (INPUT, OUTPUT Y FORWARD) es
  'ACCEPT', pero normalmente es buena idea poner INPUT y FORWARD a DENY.
- Borrar las reglas de una cadena (flush), el flush hace que se ignoren todas las otras reglas aplicadas anteriormente (-F)
- Listar las reglas en una cadena (-L)
- Borrar los contadores sobre todas las reglas en una cadena (-Z)
- Hay diferentes maneras de manipular reglas en una cadena:
- Insertar una regla en algún punto de la cadena (-I)
- Reemplazar una regla en alguna posición de la cadena (-R)
- Borrar una regla en alguna posición de la cadena (-D)
- Borrar la primera regla que coincide con la cadena (-D)
- Hay otras operaciones para Masquerading con ipchains:
- Listar las actuales conexiones masquerading (-M -L)
- Configurar los valores de tiempo de masquerading (-M -S)
- El parámetro -p, sirve para indicar el protocolo de la conexión, que puede ser TCP o UDP. En /etc/protocols tenemos
  una lista completa de los protocolos estándar que podríamos especificar aquií.
- El parámetro -d, sirve para indicar la IP de destino de la transmisión.
- El parámetro -s, sirve para indicar el origen de la transmisión.
- El parámetro -j, sirve para indicar la acción concreta que se llevará a cabo para los paquetes afectados por esta regla.
  Las opciones posibles para la acciópn son: ACCEPT, DENY, REJECT MASQ, REDIRECT o RETURN. Que corresponden
  lógicamente a: aceptar, negar, rechazar, enmascarar, redirigir y volver (no hacer nada), respectivamente. Hay una diferencia
  sutil entre REJECT y DENY. DENY implica que tiramos el paquete y hacemos como si este no hubiera llegado nunca.
  REJECT, sin embargo implica que lo rechazamos mandando un paquete ICMP a quien lo envió advirtiéndole de que lo hemos
  rechazado. Si por ejemplo hacemos un telnet a una dirección que tiene el puerto 23 cerrado con REJECT, veremos un
  'connection refused' como contestación. Sin embargo, si fuera DENY, aparentemente sería como si el otro lado estuviera
  desconectado de la red. Por ejemplo:
  /bin/ipchains -A input -i eth0 -s 192.168.10.100 -j REJECT
  Ejecutando la línea anterior, estaríamos añadiendo una regla al kernel que dijera que se rechazarán todas las conexiones
  entrantes por el dispositivo eth0 (una tarjeta de red) desde la IP 192.168.10.100.

En la medida que realiza sus cambios, puede llegar a dejar espacios de tiempo en los cuales personas
extrañas podrían ingresar al sistema y realizar modificaciones según su conveniencia. Si no se es
cuidadoso, algunos paquetes podrían pasar mientras realiza las modificaciones. Una manera simple de
evitar lo anterior y hacerlo de manera segura es la siguiente:
Insertar reglas denegando las facilidades de entrada (input), salida (output) y redireccionamiento
(forward)
ipchains -I input 1 -j DENY
ipchains -I output 1 -j DENY
ipchains -I forward 1 -j DENY
Una vez realizados los cambios correspondientes, hay que ejecutar las siguientes instrucciones para borrar
las reglas que restringían las facilidades de entrada, salida y redireccionamiento.
ipchains -D input 1
ipchains -D output 1
ipchains -D forward 1

El archivo en el que se configuran las reglas para el cortafuegos (Firewall) es el "/etc/rc.d/rc.firewall".
Este archivo se edita con el editor de texto "vi" y se adicionan las líneas (reglas) correspondientes.

## Borrar todas las reglas.
/sbin/ipchains -F input
/sbin/ipchains -F output
/sbin/ipchains -F forward

## Redireccionar http para proxy transparente
/sbin/ipchains -A input -p tcp -s 192.168.1.0/24 -d 0.0.0.0/0 80 -j REDIRECT 8080

## Crear una propia cadena para nuestras propias reglas
/sbin/ipchains -N micadena

## Permitir que el correo alcance el servidor
/sbin/ipchains -A my-chain -s 0.0.0.0/0 smtp -d 192.168.1.18 1024:-j ACCEPT

## Permitir conexiones de correo electrónico a servidores de correo
## externos
/sbin/ipchains -A my-chain -s 192.168.1.18 -d 0.0.0.0/0 smtp -j ACCEPT

## Permitir conexiones WEB a su servidor WEB
/sbin/ipchains -A my-chain -s 0.0.0.0/0 www -d 192.168.1.18 1024: -j ACCEPT

## Permitir conexiones WEB a servidores WEB externos
/sbin/ipchains -A my-chain -s 192.168.1.0/24 1024: -d 0.0.0.0/0 www -j ACCEPT

## Si se está usando masquerading
## No permitir tráfico interno de masquerading
/sbin/ipchains -A forward -s 192.168.1.0/24 -d 192.168.1.0/24 -j ACCEPT

## No permitir masquerading externo directo a la interfase
/sbin/ipchains -A forward -s XXX.XXX.XXX.0/32 -d 0.0.0.0/0 -j ACCEPT

## Enmascarar todas las IP´s internas hacia fuera
/sbin/ipchains -A forward -s 192.168.1.0/24 -d 0.0.0.0/0 -j MASQ
Volver al Indice ...

3.4.3. Orden de aplicación de las Reglas

Hay que tener en cuenta que las reglas se aplican en el mismo orden en el que se ejecutan. De modo que sí la primera
línea de nuestro firewall fuera:
/sbin/ipchains -A input ACCEPT
Estaríamos aceptando todas las conexiones entrantes, con lo que cualquier regla posterior que no permitiera el acceso
por un puerto concreto quedaría invalidada si esta regla se ejecuta antes.
Por tanto, además de ser cuidadosos con lo que dice cada regla concreta hemos de asegurarnos que el orden de aplicación
es el adecuado. Por tanto, en general lo más recomendable es cerrar primero todos los puertos, los de entrada al menos, y
luego ir abriendo uno a uno los que sepamos que debemos tener abiertos. De ese modo no habrá problemas y todos, salvo
los que despues abramos, quedarán cerrados, y nuestro sistema será bastante más seguro que antes. No obstante, es
conveniente recordar durante la configuración de nuestro firewall que si algo deja de funcionar, dejamos de tener salida a
Internet, etc., podría estar ocurriendo que hubiéramos cerrado algún puerto o servicio que si fuera necesario. por esto, es
recomendable mientras estemos en fase de pruebas, tener siempre a mano una pequeña chuleta con las instrucciones
necesarias para desactivar por completo nuestro firewall en caso de que algo no funcione.

3.4.4. Activando y Desactivando el Firewall

Siempre podemos ejecutar a mano ipchains para añadir algunas reglas al kernel. Por ejemplo, si mientras estamos tratando
de configurar algún programa o servicio nuevo en nuestro equipo (montando un FTP, o preparando nuestro PC para que sirva
páginas web, etc.) observamos que algo no funciona, podemos para el firewall por completo para comprobar que el problema
no sea simplemente que tenemos el acceso o salida cortados por nuestro propio firewall.
La manera más rápida de liimpiar todas las reglas existentes y que se dejen salir y entrar todos los paquetes es ejecutar, una
a una las siguientes reglas:
/sbin/ipchains -F
/sbin/ipchains -P input ACCEPT
/sbin/ipchains -P output ACCEPT
/sbin/ipchains -P forward ACCEPT
Con ellas deshabilitamos todas las órdenes previas, y colocamos como política por defecto aceptar conexiones, tanto de entrada
como de salida y de forward.
Una vez que terminemos nuestras comprobaciones, si queremos lanzar de nuevo nuestro firewall bastará con ejecutar a mano el
script que hemos construido. Aunque será necesario ejecutarlo como root, puesto que ipchains necesita permisos de superusuario
para poder realizar cambios en la configuración de los filtros.

3.5. Ejemplos y Pruebas

3.5.1. Ejemplo en el que sólo se admite paquetes de entrada para conexiones HTTP

Este ejemplo concreto es para el caso de que tengamos un equipo conectado a Internet utilizando un módem y que además tenga
una tarjeta de red que lo conecta a otro equipo, de modo que enmascara la salida de este otro equipo y permite, para ambos, salida
para todo tipo de servicios. Sin embargo lo único que sirve él mismo al exterior es una página web, de modo que sólo permite
paquetes de entrada para conexiones HTTP.
#!/bin/bash
# La línea anterior se coloca porque lo que construimos es un conjunto de reglas que queremos que se ejecuten como script en bash.
# Todas las líneas con almohadilla serán, lógicamente, comentarios.
# Asignamos a la variable MI_IP en valor concreto de nuestra IP
MI_IP="$PP_LOCAL"
# Comenzamos haciendo un flush. Esto limpia todas las reglas que pudiéramos haber introducido previamente.
/sbin/ipchains -F
# Luego aplicamos por defecto 3 reglas que dicen que:
# Se cierran las conexiones de entrada por defecto
/sbin/ipchains -P input DENY
# Se abren las conexiones de forward por defecto
/sbin/ipchains -P input DENY
# Se abren las conexiones de salida por defecto
/sbin/ipchaines -P output ACCEPT
# A continuación, tras las reglas de política por defecto, aplicamos reglas que hagan referencia a conexiones a dispositivos
# o puertos concretos.
# Aceptamos las conexiones de entrada desde procesos locales (por el interfaz "lo")
/sbin/ipchains -A input -i lo -j ACCEPT
# Aceptamos las conexiones de entrada provinientes de IPs de la red local (o sea, que entren por "cualquier" interfaz excepto ppp0)
/sbin/ipchains -A input -s 192.168.1.0./24 -i ! ppp0 -j ACCEPT
# Rechazamos los fragmentos de los paquetes ICMP
/sbin/ipchains -A input -p icmp -f -d $MI_IP -i ppp0 -j DENY
# Pero aceptamos los paquetes ICMP normales, para que nuestro equipo responda a pings, por ejemplo.
/sbin/ipchains -A input -p icmp -d $MI_IP -i ppp0 -j ACCEPT
# Aceptamos las conexiones entrantes al puerto 80, que es el del servicio HTTP, para poder servir nuestra página web al exterior.
/sbin/ipchains -A input -p tcp -d $MI_IP 80 -i ppp0 -j ACCEPT
# Rechazamos en todo caso las conexiones TCP y también las UDP a algunos puertos típicos de troyanos
# como BackOrifice o SubSeven.
/sbin/ipchains -A input -p udp -d $MI_IP 12345:12346 -i ppp0 -j DENY
/sbin/ipchains -A input -p tcp -d $MI_IP 12345:12346 -i ppp0 -j DENY
/sbin/ipchains -A input -p udp -d $MI_IP 31337 -i ppp0 -j DENY
/sbin/ipchains -A input -p tcp -d $MI_IP 31337 -i ppp0 -j DENY
/sbin/ipchains -A input -p udp -d $MI_IP 5999:6010 -i ppp0 -j DENY
/sbin/ipchains -A input -p tcp -d $MI_IP 5999:6010 -i ppp0 -j DENY
# Rechazamos también las conexiones al puerto de MySQL
/sbin/ipchains -A input -p udp -d $MI_IP 3306 -i ppp0 -j DENY
/sbin/ipchains -A input -p tcp -d $MI_IP 3306 -i ppp0 -j DENY
# Aceptamos todas las conexiones, que no sean las anteriores claro, deentrada al pueto 1024 y a cualquiera
# por encima de él (por eso los ":", que # equivalen aquí a 1024:65535)
/sbin/ipchains -A input -p udp -d $MI_IP 1024: -i ppp0 -j DENY
/sbin/ipchains -A input -p tcp -d $MI_IP 1024: -i ppp0 -j DENY
# No permitimos ningún otro tipo de conexión entrante
/sbin/ipchains -A input -p tcp -y -d $MI_IP -i ppp0 -j DENY
# Enmascaramos las conexiones de forward desde direcciones IP de la red local hacia
# el exteriro (o sea, salientes por el interfaz ppp0)
/sbin/ipchains -A forward -s 192.168.1.0/24 -i ppp0 -j MASQ

Una vez que tenemos nuesro firewall corriendo, conviene comporbar que el funcionamiento es el adecuado. Es
decir, que no hemos cerrado ningún servicio de salida, o entrada que quisiéramos tener disponible. Y que aquellos
que deseábamos cerrados realmente lo están. Por ejemplo, si nuestras reglas no cierrran salida de ningún tipo,
sólo entradas, deberemos poder salir a Internet para cualquier cosa, así podemos hacer pings a equipos en el
exterior. Por ejemplo ejecutando: "ping www.uji.es". Hay que tener en cuenta que se esa IP no responde a pings
puede que hayamos colocado mal alguna regla o bien que ese equipo esté apagado o no responda a pings, por lo
que es recomendable comprobarlo con varias.
Tambien deberemos poder acceder a diversas páginas web.  E igualmente si nuestro firewall es el del ejemplo
anterior, desde un equipo exterior deberemos poder ver una página web disponible en nuestro equipo (si es que
tenemos alguna disponible, claro).
También podemos comprobar desde el exterior si se puede hacer telnet a los puertos usuales de POP3, IMAP4,
telnet o SSH, entre otros, que en el caso del ejemplo deberían estar cerrados y no constestar dando mensajes
como éste:
telnet: Unable to connect to remote host: Connection refused

Volver al Indice ...

3.5.2. Ejemplo de archivo rc.firewall

A continuación se presenta como ejemplo el archivo "/etc/rc.d/rc.firewall" que modificamos para
implementear los servicios. En este archivo se escriben las instrucciones, llámense reglas, para la
configuración de los servicios de cortafuegos (Firewall). Este mismo archivo se modifica para el manejo
y configuración de IP Masquerading.
##Ejemplo del archivo /etc/rc.d/rc.firewall
##Las siguientes líneas vienen por defecto en el archivo
PATH=/sbin:/bin:/usr/sbin:/usr/bin
# Mandrake-Security:if you remove this comment, remove the next line
too
echo "1" > /proc/sys/net/ipv4/conf/all/rp_filter
# Habilitar la desfragmentacion de IP automatica
echo "1" > /proc/sys/net/ipv4/ip_always_defrag
## Las siguientes instrucciones se encuentran con comentario y aplican
## básicamente para enmascaramiento IP
# Habilitar el forwarding de direccionamiento IP (deshabilitado por
# defecto)
# echo "1" > /proc/sys/net/ipv4/ip_forward
# Todos los equipos de la subred 192.168.1.X con mascara 255.255.255.0
# son enmascarados
#/sbin/ipchains -A forward -s 192.168.1.0/24 -j MASQ
#################
## Limpiar todas las reglas .... Flush everything
/sbin/ipchains -F input
/sbin/ipchains -F forward
/sbin/ipchains -F output
#################
#Insertar una regla que cierre todos los servicios de entrada
/sbin/ipchains -I input 1 -j DENY
##Fijar las políticas en negado para los servicios de entrada, salida
y
##redireccionamiento
/sbin/ipchains -P input DENY
/sbin/ipchains -P output ACCEPT
/sbin/ipchains -P forward ACCEPT
##Habilitar el forwarding de direccionamiento IP (deshabilitado por
##defecto)
echo "1" > /proc/sys/net/ipv4/ip_forward
#Negar mensajes por difusión (broadcast) en las interfaces que
permanecen
/sbin/ipchains -A input -d 0.0.0.0 -j DENY
/sbin/ipchains -A input -d 255.255.255.255 -j DENY
#Variables definidas para definición de reglas del cortafuegos
ANY="0.0.0.0/0"
ALLONES="255.255.255.255"
REDPRIVADA=192.168.1.0/24
PRIVADA=eth0
PUBLICA=ppp0
##Reglas para el cortafuegos (firewall)
/sbin/ipchains -A input -p udp -d $ANY 137 -j DENY # Netbios sobre IP
/sbin/ipchains -A input -p tcp -d $ANY 137 -j DENY # Netbios sobre IP
/sbin/ipchains -A input -p udp -d $ANY 138 -j DENY # Netbios sobre IP
/sbin/ipchains -A input -p tcp -d $ANY 138 -j DENY # Netbios sobre IP
/sbin/ipchains -A input -p udp -d $ANY 67 -j DENY # bootp
/sbin/ipchains -A input -p udp -d $ANY 68 -j DENY # bootp

/sbin/ipchains -A input -s 192.0.0.0/24 -j DENY # Multicast
#Permitir salidas de la red privada
/sbin/ipchains -A input -i lo -j ACCEPT
#Verificación de paquetes de la red interna
/sbin/ipchains -A input -i $PRIVADA -s $REDPRIVADA -d $ANY -j ACCEPT
/sbin/ipchains -A input -i $PRIVADA -d $ALLONES -j ACCEPT
##Permitir servicios de Salida
# Servicios ICMP
/sbin/ipchains -A input -p icmp -j ACCEPT
#Servicios TCP
/sbin/ipchains -A input -p tcp ! -y -j ACCEPT
#Permitir/Restringir servicios de entrada
/sbin/ipchains -A input -p tcp -d $ANY 22 -j ACCEPT
#Restringir servicios de entrada - Telnet
/sbin/ipchains -A input -p tcp -d $ANY telnet -j ACCEPT
#Restringir FTP entrante
/sbin/ipchains -A input -p tcp -d $ANY ftp -j ACCEPT
#Enmascarar paquetes enviados desde la red interna
/sbin/ipchains -A forward -s $REDPRIVADA -d $ANY -j MASQ
#Impedir todo lo demas y grabarlo en un archivo de log
/sbin/ipchains -A input -l -j DENY
#Remover el el bloqueo inicial a los servicios de entrada
/sbin/ipchains -D input 1
Volver al Indice ...

3.5.3. Pruebas

Las siguientes instrucciones se utilizan para verificar que el cortafuegos configurado funciona.
Básicamente se borran todas las reglas adicionadas y se permiten los accesos a los servicios de entrada y
salida (input y output).
##Para probar que SI funciona
/sbin/ipchains -F input
/sbin/ipchains -F output
/sbin/ipchains -F forward
echo 1> /proc/sys/net/ipv4/ip_forward
/sbin/ipchains -A input -j ACCEPT
/sbin/ipchains -A output -j ACCEPT
/sbin/ipchains -P forward DENY
/sbin/ipchains -A forward -i ppp0 -j MASQ
Volver al Indice ...