Reencuentro con la terminal II

Continuando con mi reencuentro del otro día vamos a configurar iptables de manera sencilla. En realidad es todo la misma entrada, pero lo separé para dilatar las actualizaciones. Y así queda todo más claro.

No voy a explicar nada del otro mundo sobre iptables (ni aunque quisiera…) sino los pasos que he seguido yo para salir del paso por el momento. Hay varios manuales por ahí.

Lo que haremos será hacer un par de modificaciones a las reglas por defecto para, por lo menos, adecentar un poco la cosa.

Para esto debemos identificarnos como root.

Las tabla de reglas por defecto (FILTER) distingue entre tres tipos de tráfico:

  1. El que enviamos (OUTPUT)
  2. El que recibimos (INPUT)
  3. Y el que “pasa por allí” -trafico enrutado a través nuestro (FORWARD)

Estos 3 tipos tienen una configuración por defecto (aceptar o no el trafico) y una serie de reglas que podemos añadir (discriminando el trafico por algún parámetro como remitente, vía, etc). Para ver esto ejecutamos “iptables -L” y aparecerá algo así:

Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

Esto querría decir que la política por defecto es aceptar todo el trafico de los tres tipos y que no hay formulada ninguna regla particular, ya que no sale ninguna.

Para cambiar la política por defecto y rechazar todas las conexiones -un “principio” bastante recomendable- se debería ejecutar “iptables -P tipotrafico DROP” [ejemplo: “iptables -P FORWARD DROP”, para rechazar por defecto el trafico enrutado]. Para volverlo a cambiar, substituir “DROP” por “ACCEPT”. Para añadir reglas simples utilizaríamos el parámetro -A.

Pero lo interesante es que los cambios se mantengan y se inicien por defecto. Para esto tenemos que crear un script. Yo he usado éste:

#!/bin/bash
# — UTF 8 —

iptables=”/sbin/iptables”
LAN=”eth0″
WIFI=”wlan0″

echo “”

## Limpiar tablas ##
$iptables -F
$iptables -X
$iptables -Z
#echo ”         – Hecho FLUS a iptables” && echo””

## Definir política DROP por defecto ##
$iptables -P INPUT DROP
$iptables -P FORWARD DROP
#echo ”         – Definida política DROP por default” && echo””

## Permitir todo a localhost ##
$iptables -A INPUT -i lo -j ACCEPT
#echo ”         – Permitido todo para localhost” && echo””

## Permitir entrar paquetes de conexiones que yo inicie ##
$iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
#echo ”         – Permitidos paquetes de conexiones iniciadas por mi” && echo””

echo ”                  ##############################”
echo ”                  ## IPTABLES CONFIGURADO OK! ##”
echo ”                  ##############################”

Que no es más que una modificación (reducción) de éste que vi en éste artículo (DesdeLinux) y que no necesita explicación porque está bien comentado.

Ahora tenemos que darle permisos de lectura y ejecución a todos los usuarios: “chmod 755 /etc/iptables-script” (o el nombre de nuestro script).

Después editamos rc.local: “nano /etc/rc.local”. Añadimos la ruta del script [ejemplo: “/etc/iptables-script”] antes de la última linea (“exit 0”) [ejemplo].

La próxima vez debería estar todo como lo dejamos.

Para comprobarlo:

iptables -L

;)

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s