[TOP TIPS]Servicios y Seguridad en Red - Prácticas (p2)

Segunda parte de los consejos sobre las prácticas de la Asignatura de Servicios y Seguridad en Red. Esta práctica trata sobre la configuración del cortafuegos que trae Linux por defecto también conocido como IPtables.

Para la configuración de este servicio del núcleo tenemos que tener cuidado en el orden en el que introducimos las reglas de cortafuegos y del contenido de las mismas. Así que la solución más sencilla es crearse un script o fichero ejecutable que consta de las siguientes partes:
  1. Eliminado de todas las reglas de iptables. Como en esta asignatura solamente trabajamos con la tablas de filtro de paquetes (filter) y de traducción de direcciones (nat) nos bastará para borrarlas con:
    • iptables  -F #Borra la tabla de filtro
    • iptables -t nat -F #Borra la tabla de traducción de direcciones
  2. Establecimiento de las políticas. Iptables puede aceptar o eliminar paquetes teniendo en cuenta todas las reglas, pero si pasan todas las reglas habrá que tomar una desición, para eso están las políticas. Lo recomendable es ponerlo todo a DROP (ignora el mensaje) para saber que las reglas que establecemos en el siguiente punto funcionan, también se admite la política ACCEPT cuando el paquete lo enviamos nosotros. Pero si lo dejamos todo a DROP esta serían las reglas:
    • iptables -P INPUT DROP #Ignora los paquetes de entrada.
    • iptables -P OUTPUT DROP #Ignora los paquetes que enviamos.
    • iptables -P FORWARD DROP #Ignora los paquetes que vienen de una interfaz de red pero  a cuyo destino se llega por la otra interfaz de red que tiene nuestra máquina.
  3. A continuación establecemos las reglas de las tablas filter y nat tal y como se nos pida. Para reducir el número de reglas que tenenmos que poner es aconsejable utilizar las siguientes reglas:
    • iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #Permite la entrada de paquetes cuya conexión hemos establecido nosotros con un paquete de salida.
    • iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #Permite la salida de paquetes cuya conexión ha establecido una máquina distinta con un paquete de entrada que ha sido aceptado por las reglas de INPUT.
    • iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT #Permite el paso de paquetes que han establecido conexión con una de las máquinas de la red interna (por ejemplo).
  4. También es usual que se nos pida permitir paso a ciertos servicios como puede ser web, web segura, correo, ssh... para ello en vez de copiar y pegar la misma regla cambiando el puerto podemos usar la siguiente opción:
    • iptables -A INPUT -m multiport --dports 22,25,80,443 -j ACCEPT #Permite el acceso a los servicios de ssh, correo, web y web segura. Ojo cada puerto separados por comas SIN ESPACIOS POR MEDIO.
  5. En el caso de que se nos olvide el número de algún puerto siempre podemos echar un vistazo al fichero /var/services 
  6. Si trabajamos con un par de servidores de nombres primario-secundario hay que proporcionar el conjunto de reglas:
    • Que permitan la interrogación al servidor primario y al secundario. (Protocolo udp)
    • Que permitan la interrogación de los servidores a otros servidores de nombres.(Protocolo udp)
    • Que permitan la transferencia de ficheros entre el primario y el secundario (Protocolo tcp)
  7. Para finalizar el fichero incluimos la sentencia "service iptables save" que nos guardará el conjunto de reglas, seguido de "service iptables restart" o "service iptables stop; service iptables start"
  8. Una vez terminado el fichero que no se nos olvide darle permisos de ejecución con la orden "chmod u+x /<ruta al fichero>/<nombre del fichero>
  9. Ahora a ejecutarlo <ruta al fichero>/<nombre del fichero>
Espero que os haya sido útil!

0 comentarios: