Ir al contenido principal

Protegiéndonos con iptables

Para los que no hayan oído hablar de iptables, se trata de una utilidad que viene por defecto en Ubuntu (y en cualquier otra distribución), y sirve para filtrar tanto los paquetes que entran como los que salen a través de nuestros dispositivos de red (cableada o wifi, es lo mismo).

Lo que hace iptables es filtrar (es decir, aceptar o rechazar) paquetes de datos, en función de unas reglas que nosotros le tenemos que especificar a través de la línea de comandos.

La regla por defecto para iptables es aceptar todos los paquetes entrantes y salientes. Fijaos en la siguiente captura (para el manejo de iptables es necesario ser root):



El parámetro -L que le pasamos a iptables sirve para mostrar un listado de las reglas de filtrado actuales. Como podéis ver, para los paquetes entrantes (INPUT) la política es ACCEPT, y para los salientes (OUTPUT) lo mismo. La opción FORWARD no la vamos a utilizar aquí, pues se usa para el enrutado de paquetes.

¿Qué podemos hacer con iptables para proteger nuestro equipo ante conexiones y paquetes no deseados?

Para empezar, no necesitamos filtrar los paquetes que enviamos desde nuestro ordenador, así que la sección OUTPUT ni la tocamos.

Lo interesante está en la sección INPUT (como ya sabéis, paquetes entrantes). Vamos a configurar de un modo sencillo los filtros para dicha sección:



Primera línea:

- F : (F de flush) Eliminamos las reglas de filtrado existentes con anterioridad. Aunque en nuestro caso no sería necesario hacer esto, pues ya vimos que sólo estaban presentes las reglas por defecto, está bien saber para qué sirve la opción -F.

Segunda línea:

- A INPUT : paquetes entrantes
- i lo : interfaz loopback
- j ACCEPT : aceptar los paquetes

Resumen: Aceptamos los paquetes que entran por el interfaz loopback; este interfaz es un dispositivo de red virtual que representa a nuestro propio ordenador. Os sonará más si os digo que se corresponde con la IP 127.0.0.1.

Tercera linea:

- A INPUT
: paquetes entrantes
- p tcp - -syn : protocolo TCP, bandera syn activada
- j REJECT : rechazar los paquetes

Resumen:
Rechazamos los paquetes entrantes que pertenezcan al protocolo TCP y que tengan la bandera syn activada. Un paquete TCP con esta característica representa un intento de conexión desde el exterior.

Cuarta línea:

- A INPUT
: paquetes entrantes
- p udp - -source-port 53 : protocolo TCP, puerto de origen número 53
- j ACCEPT : aceptar los paquetes

Resumen: Aceptamos los paquetes entrantes que pertenezcan al protocolo UDP y que provengan del puerto 53 del ordenador que los envía. El puerto 53 se asocia a servidores DNS. Si rechazamos estos paquetes, no recibiremos las respuestas de los servidores DNS que nos asigna nuestro proveedor de Internet. Dicho de otro modo, no podríamos navegar.

Quinta línea:


- A INPUT : paquetes entrantes
- p udp : protocolo UDP
- j REJECT : rechazar los paquetes

Resumen:
Rechazamos el resto de paquetes pertenecientes al protocolo UDP.


Si volvemos a hacer un listado de los filtros activos, observaremos los cambios realizados:



¡Ya tenemos un pequeño firewall configurado!

Ahora hay que conseguir que la configuración de iptables se mantenga después de cada reinicio. Para ello vamos a crear un script que se ejecute con cada encendido del sistema:

# vi etc/init.d/local

Dentro del archivo /etc/init.d/local vamos a incluir las 5 líneas anteriores:

iptables -F
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp - -syn -j REJECT
iptables -A INPUT -p udp - -source-port 53 -j ACCEPT
iptables -A INPUT -p udp -j REJECT


Le damos permiso de ejecución:

# chmod +x /etc/init.d/local

Y lo incluimos como script de inicio:

# update-rc.d local defaults 80

Entradas populares de este blog

Fallo al obtener la lista de compartición del servidor

 - Ubuntu Karmic Koala El problema. El detalle es que a veces tengo que revisar archivos que están en otras computadoras que utilizan windows. Al momento de darle en el menú Lugares - Red - Red de Windows y al elegir el grupo de trabajo en el que están mis equipos me aparece el siguiente error. No se puede montar el lugar. Fallo al obtener la lista de compartición del servidor. La solución . La encontré en este articulo de los Foros de Ubuntu, lo voy a copiar tal cual, espero que no le moleste al autor y solo a manera de respaldo. # — Aquí inicia el articulo de los foros de Ubuntu – 1- En principio es necesario que estén instalados: samba samba-common smbclient winbind   2- Luego editar el archivo /etc/samba/smb.conf sudo gedit /etc/samba/smb.conf   A los cambios necesarios para adaptar el sistema, según los tutoriales de samba es necesario tener presente que: a- Donde dice workgroup = WORKGROUP, reemplazar WORKGROUP por el nombre de grupo de ...

Rootear en Ubuntu un teléfono Android

Tengo un teléfono con Android, concretamente un Motorola Defy, y resulta que en Android, basado en Linux, eres un simple usuario y solo puedes realizar algunas tareas. Otras te están vetadas. Conseguir los permisos de superusuario, se llama entre los entendidos rootear el móvil. En principio es una operación que no entraña riesgos, pero en esta vida todo puede fallar. Así que debe quedar claro que si decides rootear el teléfono, lo haces bajo tu propia responsabilidad. También debes entender, que si rooteas el teléfono, los SAT aprovechan para lavarse las manos de cualquier problema y anular la garantía. Y por último, debes saber que es posible que ya no recibas las actualizaciones automáticas de Android. Para rootear teléfonos se utiliza una aplicación llamada Superoneclick . En mi caso, esta parece ser la única solución. Pero este es un programa para Windows, por lo que.... Afortunadamente, esta escrito en .NET, por lo que vamos a poder ejecutarlo con MONO en nuestro ...

Descargar Packet Tracer 5.2 [Windows y Linux]

Packet Tracer 5.2 [Windows y Linux] Packet Tracer es la herramienta de aprendizaje y simulación de redes interactiva para los instructores y alumnos de Cisco CCNA. Esta herramienta les permite a los usuarios crear topologías de red, configurar dispositivos, insertar paquetes y simular una red con múltiples representaciones visuales. Packet Tracer se enfoca en apoyar mejor los protocolos de redes que se enseñan en el currículum de CCNA. Este producto tiene el propósito de ser usado como un producto educativo que brinda exposición a la interfaz comando – línea de los dispositivos de Cisco para practicar y aprender por descubrimiento. Packet Tracer 5.2 es la última versión del simulador de redes de Cisco Systems, herramienta fundamental si el alumno está cursando el CCNA o se dedica al networking. En este programa se crea la topología física de la red simplemente arrastrando los dispositivos a la pantalla. Luego clickando en ellos se puede ingresar ...