Iptables no inicia con el sistema en 10.10 (solucionado)

Imagen de gledof
34 puntos

Hola foristas, use como siempre mi script para las reglas de iptables y configurar mi seguridad. Pero cuando lo copio en /etc/init.d y corro el comando:
$ sudo update-rc.d iptas.sh defaults

Asi inicia mi script:

#!/bin/bash

# Borrar todas las reglas

iptables -F

# Politica general.Cerramos todo.Dejamos entrar y salir lo solicitado

iptables -P INPUT DROP

iptables -P OUTPUT DROP

iptables -P FORWARD DROP

#Conexion

iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A OUTPUT -o eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Evitar el spoofing dirección origen del paquete viene del sitio correcto.

for interface in /proc/sys/net/ipv4/conf/*/rp_filter; do

/bin/echo "1" > ${interface}

done........

Y esto es lo que muestra $ sudo iptables -L -n

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

Que olvide hacer? No es la primera vez que utilizo iptables pero parece no funcionar.

Imagen de Gabriel_M
+1
0
-1

Para la ejecución automática de un script:
Te logueas como root
sudo su
Lo copias a /etc/init.d/
cp /home/gledof/scripts/iptas.sh /etc/init.d/iptas.sh
Reafirmas los permisos
chmod +x /etc/init.d/iptas.sh
chmod 0755 /etc/init.d/iptas.sh
Haces que lo tomen al inicio
cd /etc/init.d/
update-rc.d iptas.sh defaults
cuando lo quieras eliminar del inicio ejecutas:
update-rc.d -f iptas.sh remove

En cuanto al script

## FLUSH de reglas
iptables -F
iptables -X
iptables -Z
iptables -t nat -F

## Establecemos politica por defecto: DROP
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

+1
0
-1
Imagen de gledof
+1
0
-1

Hola, como explique hice todos los pasos, pero no inicia. El script pertenece a root, tiene privilegios +x y 755. No es la primera vez que lo hago y quise consultar los pasos, me estare olvidadando de algo, pense.
En tu ejemplo no figura #!/bin/bash no lo incluiste deliberadamente, debo borrarlo de mi script?

+1
0
-1

Saludos·

Imagen de Gabriel_M
+1
0
-1

Este es mi script completo:

#!/bin/sh
## SCRIPT de IPTABLES - Ejemplo del manual de iptables
## Ejemplo de script para proteger la propia máquina con DROP por defecto

echo -n Aplicando Reglas de Firewall...

## FLUSH de reglas
/sbin/iptables -F
/sbin/iptables -X
/sbin/iptables -Z
/sbin/iptables -t nat -F

## Establecemos politica por defecto: DROP
/sbin/iptables -P INPUT DROP
/sbin/iptables -P OUTPUT DROP
/sbin/iptables -P FORWARD DROP

## Empezamos a abrir! porque ahora esta TODO denegado.
## Debemos decir de manera explicita qué es lo que queremos abrir

# Operar en localhost sin limitaciones
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A OUTPUT -o lo -j ACCEPT

# A nuestra IP le dejamos todo
/sbin/iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
/sbin/iptables -A OUTPUT -d 192.168.1.0/24 -j ACCEPT

# Permitimos que la maquina pueda salir a la web
/sbin/iptables -A INPUT -p tcp -m tcp --sport 80 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT

# Y tambien a webs seguras
/sbin/iptables -A INPUT -p tcp -m tcp --sport 443 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT

# Reglas necesarias para FTP pasivo y activo. Se permiten conexiones entrantes YA establecidas
/sbin/iptables -A INPUT -p tcp -m tcp --sport 20:21 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m tcp --dport 20:21 -j ACCEPT
/sbin/iptables -A INPUT -p tcp -m tcp --sport 1024:65535 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT
/sbin/iptables -A OUTPUT -p tcp -m tcp --dport 1024:65535 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT

# Permitimos la consulta a un primer DNS de Speedy
/sbin/iptables -A INPUT -s 200.10.122.10 -p udp -m udp --sport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -d 200.10.122.10 -p udp -m udp --dport 53 -j ACCEPT

# Permitimos la consulta a un segundo DNS de Speedy
/sbin/iptables -A INPUT -s 200.10.122.11 -p udp -m udp --sport 53 -j ACCEPT
/sbin/iptables -A OUTPUT -d 200.10.122.11 -p udp -m udp --dport 53 -j ACCEPT

# Barrera de backup por si cambiamos a modo ACCEPT temporalmente
# Con esto protegemos los puertos reservados y otros well-known
/sbin/iptables -A INPUT -p tcp -m tcp --dport 1:1024 -j DROP
/sbin/iptables -A INPUT -p udp -m udp --dport 1:1024 -j DROP
/sbin/iptables -A INPUT -p tcp -m tcp --dport 1723 -j DROP
/sbin/iptables -A INPUT -p tcp -m tcp --dport 3306 -j DROP
/sbin/iptables -A INPUT -p tcp -m tcp --dport 5432 -j DROP

echo " OK . Verifique que lo que se aplica con: /sbin/iptables -L -n"

# Fin del script

+1
0
-1
Imagen de gledof
+1
0
-1

ejecutar el script desde el terminal y me devolvio esto:

[sudo] password for gledof:
iptables: No chain/target/match by that name.
iptables: No chain/target/match by that name.
iptables: No chain/target/match by that name.
iptables: No chain/target/match by that name.
iptables: Bad policy name. Run `dmesg' for more information.
iptables: Bad policy name. Run `dmesg' for more information.
iptables: Bad policy name. Run `dmesg' for more information.
'ptables v1.4.4: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
'ptables v1.4.4: Invalid target name `ACCEPT
Try `iptables -h' or 'iptables --help' for more information.
iptas.sh: 15: Syntax error: word unexpected (expecting "do")

Despues agregue "/sbin/iptables..." a las lineas de mi script y funciono al siguiente reinicio.
Muchas gracias Gabriel, hasta luego.

+1
0
-1

Saludos·

Imagen de Gabriel_M
+1
0
-1

1- De nada.
2- Estimo necesario hacer algunas aclaraciones, para los que lean el post
El comando iptables se aloja en el directorio /sbin/
El directorio /sbin/ generalmente no se encuentra en el path
Por ello para ejecutar iptables, es conveniente incluir el path en el comando
/sbin/iptables opciones
3- for interface in /proc/sys/net/ipv4/conf/*/rp_filter; do /bin/echo "1" > ${interface}
no tiene nada que ver con iptables, es una forma de control de los parámetros de seguridad de los
ordenadores que ejecutan Gnu/Linux, efectuado a través del sistema de archivos virtual /proc, para el protocolo IPv4, valores directamente utilizados por el núcleo del sistema operativo en las
comunicaciones TCP/IP basadas en el protocolo IPv4.
Otra forma de configurar los valores es utilizando la utilidad sysctl, ya sea como comando o modificando el archivo sysctl.conf

+1
0
-1