Para nuestro ejemplo, el ordenador es un 486-DX66 con 8 Megas de RAM, una partición para Línux de 500 Megas, y una conexión PPP a un proveedor de Internet a través de un módem de 14.400 bps . Ese es nuestro línux básico. Para convertirlo en un cortafuegos le añadimos una tarjeta Ethernet NE2000. Con ella queda conectado a tres PC'es con Güindous 3.1 y Trumpet Winsock, y a dos Sun'es con SunOs. La razón de elegir este escenario es que son las dos plataformas con las que estoy familiarizado. Imagino que gran parte de lo que cuento aquí es factible con Mac'es pero, dado que no uso Mac'es con suficiente asiduidad, lo cierto es que no lo sé.
Así, que ahora tenemos un Línux conectado a Internet por una linea PPP
de 14.400 . Además tenemos una red Ethernet que conecta el Línux y el
resto de los ordenadores. Lo primero, debemos recompilar el núcleo con
las opciones apropiadas. En este momento yo echaría un vistazo al
JAUTU del Núcleo, al JAUTU de la Ethernet, y al JAUTU del NET-2.
Luego teclearía "make config"
:
Las opciones requeridas son:
Ahora, recompilamos y reinstalamos el núcleo y rearrancamos la máquina. Las interfaces deberían ser reconocidas en la secuencia de arranque para que todo estuviera bien. Si no, habría que repasar los JAUTUS antes mencionados y volverlo a intentar hasta que funcionase.
Esta es la parte interesante. Dado que no queremos que la Internet tenga acceso a nuestras máquinas, no necesitamos usar direcciones reales. Una buena elección es el rango de direcciones de clase C 192.168.2.xxx, que está designado como rango para pruebas. Es decir, nadie lo usa, y no entrará en conflicto con ninguna petición al exterior. De modo que, en esta configuración, sólo se necesita una dirección IP real. Las otras se pueden elegir libremente y de ninguna manera afectarán a la red.
Asignamos la dirección IP real al puerto serie del cortafuegos
que
usamos para la conexión PPP. Asignamos 192.168.2.1 a la tarjeta
Ethernet del cortafuegos
. Asignamos a las otras máquinas de la red
protegida cualquier dirección del rango anterior.
Lo primero es hacer ping a la internet desde el cortafuegos
. Yo antes
usaba nic.ddn.mil
como punto de prueba. No deja de ser una buen sitio,
pero ha demostrado ser menos fiable de lo que esperaba. Si no funciona
a la primera, probaremos a hacer pinges a otro par de sitios que no
estén conectados a nuestra red local. Si no funciona es que el PPP
está mal configurado. Tendríamos que volver a leer el JAUTU de Net-2 y
a probar.
Ahora probaremos a hacer pinges entre las máquinas de la red protegida. Todas deben ser capaces de hacer ping a las demás. Si no fuera así, habría que leer de nuevo el JAUTU del NET-2 y trabajar en la red un poco más.
Ahora, todas las máquinas de la red protegida deben ser capaces de
hacer pinges al cortafuegos
. Si no, vuelta atrás. Recuerda: deberían
ser capaces de hacer ping a la 192.168.2.1, no a la dirección PPP.
Entonces probaremos a hacer ping a la dirección PPP del cortafuegos
desde dentro de la red protegida. No debe funcionar. Si funciona es
que no hemos deshabilitado el Reenvio del Paquetes IP y habrá que
recompilar el núcleo. Al haber asignado a la red protegida la
dirección 192.168.2.0 ningún paquete será encaminado a ella por la
Internet, pero, en cualquier caso, es más seguro tener el reenvío de
paquetes IP deshabilitado. Esto deja el control en nuestras manos, no
en las manos de nuestro proveedor de PPP.
Finalmente, haremos ping a todas las máquinas de la red protegida
desde el cortafuegos
. Llegados a este punto, no debería haber
problemas.
Ya tenemos una disposición de cortafuegos básica.
El cortafuegos no sirve si lo dejamos vulnerable a los ataques. Primero echaremos un vistazo al /etc/inetd.conf. Este es el fichero de configuración del así llamado "superservidor" (inetd), que arranca un buen número de demonios servidores cuando les llega una petición.
Entre ellos:
Se debe desactivar todo lo que no se necesite. No dudaremos en
desactivar netstat, systat, tftp, bootp, y finger. Seguramente
querremos desactivar telnet, y dejar sólo rlogin, o viceversa. Para
desactivar un servicio basta con poner un # al comienzo de la linea
que se refiera a él. Después hay que mandar una señal SIG-HUP al
proceso inetd tecleando "kill -HUP <pid>", donde <pid> es el número de
proceso de inetd. Esto hará que inetd relea su fichero de
configuración (inetd.conf) y se reinicie. Lo comprobaremos haciendo un
telnet al puerto 15 del cortafuegos
, el puerto de netstat. Si aparece
la respuesta de netstatd, no hemos reiniciado inetd correctamente.