Pregunta ¿Cómo iniciar / detener iptables en Ubuntu?


¿Cómo puedo iniciar / detener el servicio de iptables en Ubuntu?

Yo he tratado

 service iptables stop

pero esta dando "servicio no reconocido".

¿Por qué lo está haciendo? ¿Hay algún otro método?


81
2018-04-03 11:15


origen


Creo que parte de la confusión proviene de artículos como este: cyberciti.biz/faq/turn-on-turn-off-firewall-in-linux que solo se aplica a Fedora / Red Hat y afirma que lo encontraría en /etc/init.d/ Es (des) útil el enlace superior que se obtiene al buscar en Google "desactivar iptables ubuntu". - icc97


Respuestas:


No conozco "Ubuntu", pero en Linux en general, "iptables" no es un servicio, es un comando para manipular el firewall del kernel de netfilter. Puede "deshabilitar" (o detener) el firewall configurando las políticas predeterminadas en todas las cadenas estándar en "ACEPTAR", y eliminando las reglas.

iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F

(Es posible que también deba vaciar otras tablas, como "nat", si las ha usado)

El siguiente artículo en el sitio web de Ubuntu describe cómo configurar iptables para usar con NetworkManager: https://help.ubuntu.com/community/IptablesHowTo


65
2018-04-03 17:36



¿No tirará esto todas las reglas actuales para siempre? Lo mejor es guardarlos en algún lugar primero con sudo iptables-save> / tmp / rules - Jens Timmerman
Esto no detiene el servicio, sino que permite que todo pase. - Frederik Nielsen
Ah gracias. iptables -F era lo que me faltaba :-) - Cameron
@JensTimmerman iptables-save > /tmp/rules salvado mi dia Gracias - blagus


Todos ustedes están equivocados :-)

El comando que está buscando es:

$ sudo ufw disable

44
2017-08-15 18:40



Seguro que si estuviéramos hablando de ufw, pero esta publicación es sobre iptables. - webjay
Bueno, asumí que era una instalación predeterminada de Ubuntu, y esa no tiene iptables, pero tiene ufw. - Frederik Nielsen
ufw es solo una interfaz para iptables: "Iptables es un firewall, instalado de forma predeterminada en todas las distribuciones oficiales de Ubuntu (Ubuntu, Kubuntu, Xubuntu). Cuando instala Ubuntu, iptables está ahí, pero permite todo el tráfico de forma predeterminada. Ubuntu 8.04 viene con ufw - un programa para administrar el firewall de iptables fácilmente ". help.ubuntu.com/community/IptablesHowTo - benjaoming
Podría ser, pero como ufw == iptables (más o menos) en Ubuntu, deshabilitar ufw es igual a deshabilitar iptables. - Frederik Nielsen
sudo ufw status verbose; sudo iptables -L; - user27465


Primero verificaría si está instalado con (probablemente es):

dpkg -l | grep iptables

En Ubuntu, iptables no es un servicio. Para detenerlo, debes hacer lo siguiente:

sudo iptables-save > /root/firewall.rules
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

Para restaurar sus reglas anteriores:

iptables-restore < /root/firewall.rules

Esto fue tomado de http://www.cyberciti.biz/faq/turn-on-turn-off-firewall-in-linux/ y fue probado en muchas instalaciones de Ubuntu 8.X y 9.10.


29
2018-04-05 07:46



No sé por qué esto tiene tantos upvotes, iptables es un módulo del kernel. Nunca es un "servicio" que puede ser "detenido". Se utilizan para decirle al núcleo cómo manejar las conexiones. También en un entorno de producción, nunca debe desactivar su firewall. Si algo no funciona, encuentra la solución correcta, no la fácil. - Broco


Iptables es un comando, no es un servicio, por lo que generalmente no es posible usar comandos como

service iptables start

o

service iptables stop

para iniciar y detener el firewall, pero algunas distribuciones como centos han instalado un servicio llamado iptables para iniciar y detener el firewall y un archivo de configuración para configurarlo. De todos modos, es posible hacer un servicio para administrar ipotables editando o instalando un script para este alcance. Todos los servicios en linux, ubuntu no son una excepción, son scripts ejecutables dentro de la carpeta /etc/init.d, que implementan una interfaz estándar (iniciar, detener, reiniciar) Una posible secuencia de comandos se ve así:

 #!/bin/sh -e
 ### BEGIN INIT INFO
 # Provides:          iptables
 # Required-Start:    mountvirtfs ifupdown $local_fs
 # Default-Start:     S
 # Default-Stop:      0 6
 ### END INIT INFO

 # July 9, 2007
 # James B. Crocker <ubuntu@james.crocker.name>
 # Creative Commons Attribution - Share Alike 3.0 License (BY,SA)
 # Script to load/unload/save iptables firewall settings.

 PATH="/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin"

 IPTABLES=/sbin/iptables
 IPTABLES_SAVE=/sbin/iptables-save
 IPTABLES_RESTORE=/sbin/iptables-restore

 IPTABLES_CONFIG=/etc/iptables.conf

 [ -x $IPTABLES ] || exit 0

 . /lib/lsb/init-functions


 case "$1" in
 start)
    log_action_begin_msg "Starting firewall"
         type usplash_write >/dev/null 2>/dev/null && usplash_write "TIMEOUT 120" || true
    if $IPTABLES_RESTORE < $IPTABLES_CONFIG ; then
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
         type usplash_write >/dev/null 2>/dev/null && usplash_write "TIMEOUT 15" || true
    ;;

 stop)
    log_action_begin_msg "Saving current firewall configuration"
    if $IPTABLES_SAVE > $IPTABLES_CONFIG ; then
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
    log_action_begin_msg "Flushing ALL firewall rules from chains!"
    if $IPTABLES -F ; then
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
    log_action_begin_msg "Deleting ALL firewall chains [Warning: ACCEPTING ALL PORT SERVICES!]"
    if $IPTABLES -X ; then
        $IPTABLES -P INPUT ACCEPT
        $IPTABLES -P FORWARD ACCEPT
        $IPTABLES -P OUTPUT ACCEPT
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
    ;;

 save)
    log_action_begin_msg "Saving current firewall configuration"
    if $IPTABLES_SAVE > $IPTABLES_CONFIG ; then
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
    ;;

 force-reload|restart)
    log_action_begin_msg "Reloading firewall configuration [Warning: POTENTIAL NETWORK INSECURITY DURING RELOAD]"
    $IPTABLES -F
    $IPTABLES -X
    if $IPTABLES_RESTORE < $IPTABLES_CONFIG ; then
        log_action_end_msg $?
    else
        log_action_end_msg $?
    fi
    ;;

 *)
    echo "Usage: /etc/init.d/iptables {start|stop|save|restart|force-reload}"
    exit 1
    ;;
 esac

 exit 0 

Este script es parte de esto. tutorial, todos los comandos para configurar el firewall deben insertarse, de acuerdo con el script anterior, en el archivo /etc/iptables.conf. Este script debe ser insertado en un archivo llamado iptables en /etc/init.d y hacerlo ejecutable usando

chmod+x *iptables* 

y agrega el servicio a los niveles de ejecución usando

update-rc.d iptables defaults

Puede agregar nuevas reglas desde el shell, estas reglas estarán inmediatamente activas y se agregarán a /etc/iptables.conf cuando el servicio se detenga (significa que se guardarán con seguridad cuando se apague el sistema).

Espero que esto sea de ayuda para todos.


16
2017-10-17 07:53





Porque tanto iptables como ufw son formas de administrar el filtro de red firewall en Linux, y debido a que ambos están disponibles de forma predeterminada en Ubuntu, puede usar para iniciar y detener (y administrar) las reglas del firewall.

iptables es más flexible, pero como ufw proporciona un lenguaje de interfaz muy simple para una función simple y típica, puede usar:

sudo ufw disable # Para desactivar el firewall

sudo ufw enable  # Para habilitar el firewall

Para ver la configuración actual del firewall usa sudo ufw status verboseo iptables -L .

Las páginas de documentos de la comunidad de Ubuntu en iptablesy UFW tener mucho más información


6
2017-07-02 22:37





Si recuerdo correctamente, la forma sugerida para configurar iptables en las guías de ubuntu es configurarlo como parte de los scripts de red. lo que significa que no hay una secuencia de comandos /etc/init.d/iptables como la que hay en los sistemas operativos de estilo BSD.


3
2018-04-03 23:05



Hubo en Debian Woody (¿existía Ubuntu en ese momento?), De todos modos, todavía está implementado por los administradores de sistemas en la actualidad. ¿Por qué cambiaron eso alguna idea?
No tengo ni idea ... pero me parece recordar que fue una de esas cosas molestas que tuve que descubrir cuando configuré el servidor Ubuntu 7.10 o algo así ... ya que quería una distribución de lanzamiento que tuviera un postgres reciente y era para servidores ... de lo contrario ejecuto arch linux. - xenoterracide


Parece que hay varias formas de administrar el firewall en Ubuntu, por lo que te puede interesar leer esto: https://help.ubuntu.com/community/IptablesHowTo#Configuration%20on%20startup

Para eliminar todas las reglas actuales puede usar estos comandos (póngalos en algún script):

iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P INPUT ACCEPT
iptables -t mangle -P FORWARD ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -t mangle -P POSTROUTING ACCEPT
iptables -t mangle -F
iptables -t mangle -X
iptables -t filter -P INPUT ACCEPT
iptables -t filter -P FORWARD ACCEPT
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -F
iptables -t filter -X

En el caso habitual, las reglas de firewall predeterminadas se guardan en algún archivo (por ejemplo, /etc/iptables.rules). Mientras que el comando del sistema de arranque iptables-restore </etc/iptables.rules Ejecutado para cargar reglas de firewall. Por lo tanto, ejecutar el mismo comando después de eliminar todas las reglas que utilizan los comandos anteriores dará como resultado la "recarga del firewall" que solicitó.


3
2018-04-05 04:32





Crear un archivo en /etc/init.d/

touch fw.rc

Hacer el archivo ejecutable chmod + x

Haga un enlace simbólico a ese archivo en /etc/rc2.d/

ln -s /etc/init.d/fw.rc S80firewall

Editar S80firewall y agregar lo siguiente

iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain

echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -F

Puedes agregar todas tus reglas personalizadas de iptables en este archivo

Ahora puede reiniciar el firewall (iptables) ejecutando /etc/rc2.d/S80firewall (debe ser root)


3
2017-10-17 08:37