jueves, 31 de enero de 2008

Instalando un servidor casero (II). Nmap e IPTables

Tras instalar el Apache y configurar el dominio No-Ip lo siguiente era abrir el puerto 80, es decir, el que permite la entrada de tráfico por protocolo HTTP.

Lo primero que podemos hacer es ver si tenemos ese puerto abierto. Para ellos podemos hacer dos cosas:
  • Bajarnos nmap (sudo aptitude install nmap) y ejecutar

    nmap localhost (o dominio no-ip elegido)

    que nos devolverá una lista con los puertos que nuestro equipo tiene abierto.
  • Ir al Menú de aplicaciones > Sistema > Herramientas de Red y ejecutar la aplicación que se encuentra en la pestaña Análisis de puertos.

De cualquiera de las dos maneras veremos si el puerto 80 está abierto. Si no lo está debemos hacerlo; para ello también tenemos dos posibles opciones:
  • Instalar firestarter, (sudo aptitude install firestarter), una aplicación para manejar las tablas de enrutamiento (iptables) y poder abrir el puerto. Es una aplicación que configura un cortafuegos.
  • Modificar iptables de manera manual.
Yo he escogido la segunda opción. Antes una pequeña explicación sobre esto: iptables es una aplicación del framework Netfilter del kernel Linux que permite trabajar con paquetes de red. Iptables es un cortafuegos puro y duro. Trabajando con esta pequeña (y potentísima) aplicación podremos abrir y cerrar puertos, denegar el acceso a nuestra máquina a cierta IP, no permitir la entrada de paquetes de tipos concretos, controlar qué hacer con los que salen de nuestro sistema, etc. Es decir, que si sabemos manejar bien iptables podremos proteger nuestro ordenador un poco más y optimizar el rendimiento de la red. Las órdenes que atañen a iptables son muchas y variadas, para poder configurar el cortafuegos de la manera más fina posible. Para ello podemos acceder a la página del manual de iptables (man iptables) y estudiarlo. Lo que a continuación viene es solo un 0.00000001% de lo que atañe a esta aplicación.

En nuestro caso lo que queremos hacer es permitir tráfico entrante por el puerto 80. Para ello tenemos que ejecutar en la consola la orden

iptables -A INPUT -i nas0 -p TCP --dport 80 -m state --state NEW

A muy grandes rasgos esa orden añade una línea a la tabla de enrutamiento que dice que se permita tráfico entrante (-A INPUT) a través de la interfaz de red elegida (-i nas0, recordemos que es la que se adjudica al configurar el módem usb), siguiendo el protocolo TCP (-p) por el puerto 80 (--dport). El estado NEW indica que esa regla se aplique a los paquetes que provengan de una nueva conexión a nuestro servidor.

Con eso hemos permitido la entrada de paquetes por el puerto 80, es decir, hemos abierto el puerto.

Y en este punto, siguiendo la parte I y esta, la II, del tutorial habremos conseguido (o deberíamos haber conseguido) poder montar un pequeño servidor casero y permitir que se pueda conectar desde fuera de él.

La próxima entrada tratará sobre la protección de directorios del servidor y la autenticación, como parte correspondiente a la instalación del servidor. En siguientes se tratarán detalles de configuración que me han ido surgiendo (como la adecuación a un conjunto de caracteres concreto).

No hay comentarios: