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ás en /etc/init.d/él (un) es el enlace principal que obtienes cuando buscas en Google 'apaga iptables ubuntu'.
icc97
Respuestas:
76
No sé sobre "Ubuntu", pero en Linux en general, "iptables" no es un servicio, es un comando para manipular el firewall del kernel netfilter. Puede "deshabilitar" (o detener) el firewall configurando las políticas predeterminadas en todas las cadenas estándar en "ACEPTAR" y eliminando las reglas.
¿No arrojará esto a la basura todas las reglas actuales para siempre? Lo mejor es guardarlos en algún lugar primero con sudo iptables-save> / tmp / rules
Jens Timmerman
8
Esto no detiene el servicio, sino que solo permite que todo pase.
Frederik Nielsen
1
Ah gracias. iptables -Fera lo que me faltaba :-)
Cameron
@JensTimmerman iptables-save > /tmp/rulesme salvó el día. Gracias
seguro si estuviéramos hablando de ufw, pero esta publicación es sobre iptables
webjay
1
Bueno, supuse que era una instalación predeterminada de Ubuntu, y que no tiene iptables, pero tiene ufw.
Frederik Nielsen
22
ufw es solo una interfaz para iptables: "Iptables es un firewall, instalado de manera predeterminada en todas las distribuciones oficiales de Ubuntu (Ubuntu, Kubuntu, Xubuntu). Cuando instala Ubuntu, iptables está allí, pero permite todo el tráfico de forma predeterminada. Ubuntu 8.04 viene con ufw: un programa para administrar fácilmente el firewall de iptables ". help.ubuntu.com/community/IptablesHowTo
benjaoming
2
Puede ser, pero como ufw == iptables (más o menos) en Ubuntu, deshabilitar ufw es igual a deshabilitar iptables.
Frederik Nielsen
2
Lo más probable es que el OP estuviera realmente interesado en deshabilitar los firewalls, en lugar de comprender las complejidades del servicio iptables para administrar los firewalls, por lo que esta es una buena respuesta.
BobDoolittle
30
Primero verificaría si está instalado con (probablemente lo sea):
dpkg -l | grep iptables
En Ubuntu, iptables no es un servicio. Para detenerlo, debe hacer lo siguiente:
No sé por qué esto tiene tantos votos positivos, iptables es un módulo del núcleo. Nunca es un "servicio" que se pueda "detener". Se usan para decirle al núcleo cómo manejar las conexiones. Además, en un entorno de producción, nunca debe deshabilitar su firewall. Si algo no funciona, encuentre la solución correcta, no la fácil.
Broco
17
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 la edición de ipotables o instalar un script para este alcance. Todos los servicios en Linux, ubuntu no es una excepción, son scripts ejecutables dentro de la carpeta /etc/init.d, que implementa una interfaz estándar (iniciar, detener, reiniciar) Un posible script 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 <[email protected]>
# 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 este 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 insertarse en un archivo llamado iptables en /etc/init.d y hacerlo ejecutable usando
chmod+x *iptables*
y agregue el servicio a 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 se detenga el servicio (significa que se guardarán con seguridad cuando se cierre el sistema).
Debido a que tanto iptables como ufw son formas de administrar el firewall de netfilter en Linux, y debido a que ambos están disponibles por defecto en Ubuntu, puede usar para iniciar y detener (y administrar) las reglas del firewall.
iptables es más flexible, pero debido a que ufw proporciona un lenguaje de interfaz muy simple para una función simple y típica, puede usar:
sudo ufw disable # Para deshabilitar el firewall
sudo ufw enable # Para habilitar el firewall
Para ver la configuración actual del firewall sudo ufw status verbose, use , o iptables -L.
Las páginas de documentos de la Comunidad Ubuntu en iptables y UFW tienen mucha más información.
En el caso habitual, las reglas de firewall predeterminadas se guardan en algún archivo (por ejemplo, /etc/iptables.rules). Mientras se iptables-restore </etc/iptables.rulesejecuta el comando del sistema ejecutado para cargar las reglas del firewall. Por lo tanto, ejecutar el mismo comando después de descartar todas las reglas usando los comandos anteriores dará como resultado "volver a cargar el firewall" que solicitó.
Si recuerdo correctamente, la forma sugerida de configurar iptables en las guías de ubuntu es configurarlo como parte de los scripts de red. lo que significa que no hay un script /etc/init.d/iptables como en los sistemas operativos de estilo BSD.
Había en Debian Woody (¿existía Ubuntu entonces?), De todos modos todavía lo implementan los administradores de sistemas hoy en día. ¿Por qué cambiaron esa idea?
No tengo ni idea ... pero parece recordar que fue una de esas cosas molestas que tuve que resolver cuando configuré ubuntu server 9.10 o algo así ... ya que quería una distribución de lanzamiento que tuviera un postgres reciente y fue para servidores ... de lo contrario ejecuto arch linux.
xenoterracide
2
Cree 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/
Tuve el mismo problema. De hecho, no había iptables-persistentes en/etc/init.d
Entonces, creé el archivo iptables-persistent en /etc/init.d
nano /etc/init.d/iptables-persistent
y escribió lo siguiente dentro:
#!/bin/sh
# Written by Simon Richter <[email protected]>
# modified by Jonathan Wiltshire <[email protected]>
# with help from Christoph Anton Mitterer
#
### BEGIN INIT INFO
# Provides: iptables-persistent
# Required-Start: mountkernfs $local_fs
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Start-Before: $network
# X-Stop-After: $network
# Short-Description: Set up iptables rules
# Description: Loads/saves current iptables rules from/to /etc/iptables
# to provide a persistent rule set during boot time
### END INIT INFO
. /lib/lsb/init-functions
rc=0
load_rules()
{
log_action_begin_msg "Loading iptables rules"
#load IPv4 rules
if [ ! -f /etc/iptables/rules.v4 ]; then
log_action_cont_msg " skipping IPv4 (no rules to load)"
else
log_action_cont_msg " IPv4"
iptables-restore < /etc/iptables/rules.v4 2> /dev/null
if [ $? -ne 0 ]; then
rc=1
fi
fi
#load IPv6 rules
if [ ! -f /etc/iptables/rules.v6 ]; then
log_action_cont_msg " skipping IPv6 (no rules to load)"
else
log_action_cont_msg " IPv6"
ip6tables-restore < /etc/iptables/rules.v6 2> /dev/null
if [ $? -ne 0 ]; then
rc=1
fi
fi
log_action_end_msg $rc
}
save_rules()
{
log_action_begin_msg "Saving rules"
#save IPv4 rules
#need at least iptable_filter loaded:
/sbin/modprobe -q iptable_filter
if [ ! -f /proc/net/ip_tables_names ]; then
log_action_cont_msg " skipping IPv4 (no modules loaded)"
elif [ -x /sbin/iptables-save ]; then
log_action_cont_msg " IPv4"
iptables-save > /etc/iptables/rules.v4
if [ $? -ne 0 ]; then
rc=1
fi
fi
#save IPv6 rules
#need at least ip6table_filter loaded:
/sbin/modprobe -q ip6table_filter
if [ ! -f /proc/net/ip6_tables_names ]; then
log_action_cont_msg " skipping IPv6 (no modules loaded)"
elif [ -x /sbin/ip6tables-save ]; then
log_action_cont_msg " IPv6"
ip6tables-save > /etc/iptables/rules.v6
if [ $? -ne 0 ]; then
rc=1
fi
fi
log_action_end_msg $rc
}
flush_rules()
{
log_action_begin_msg "Flushing rules"
if [ ! -f /proc/net/ip_tables_names ]; then
log_action_cont_msg " skipping IPv4 (no module loaded)"
elif [ -x /sbin/iptables ]; then
log_action_cont_msg " IPv4"
for param in F Z X; do /sbin/iptables -$param; done
for table in $(cat /proc/net/ip_tables_names)
do
/sbin/iptables -t $table -F
/sbin/iptables -t $table -Z
/sbin/iptables -t $table -X
done
for chain in INPUT FORWARD OUTPUT
do
/sbin/iptables -P $chain ACCEPT
done
fi
if [ ! -f /proc/net/ip6_tables_names ]; then
log_action_cont_msg " skipping IPv6 (no module loaded)"
elif [ -x /sbin/ip6tables ]; then
log_action_cont_msg " IPv6"
for param in F Z X; do /sbin/ip6tables -$param; done
for table in $(cat /proc/net/ip6_tables_names)
do
/sbin/ip6tables -t $table -F
/sbin/ip6tables -t $table -Z
/sbin/ip6tables -t $table -X
done
for chain in INPUT FORWARD OUTPUT
do
/sbin/ip6tables -P $chain ACCEPT
done
fi
log_action_end_msg 0
}
case "$1" in
start|restart|reload|force-reload)
load_rules
;;
save)
save_rules
;;
stop)
# Why? because if stop is used, the firewall gets flushed for a variable
# amount of time during package upgrades, leaving the machine vulnerable
# It's also not always desirable to flush during purge
echo "Automatic flushing disabled, use \"flush\" instead of \"stop\""
;;
flush)
flush_rules
;;
*)
echo "Usage: $0 {start|restart|reload|force-reload|save|flush}" >&2
exit 1
;;
esac
exit $rc
y luego le dio permiso a chmod 755.
chmod 755 /etc/init.d/iptables-persistent
¡Ahora funciona perfectamente! Espero que pueda ayudar a alguien.
Si está ejecutando el servidor Ubuntu como un invitado VM (por ejemplo, en VirtualBox), entonces libvirt puede estar habilitado. Si es así, libvirt contiene algunos filtros de red incorporados que utilizan iptables. Estos filtros se pueden configurar como se describe en la sección de firewall en nwfilters .
Para deshabilitar las reglas de iptables, necesitará eliminar todas las reglas ofensivas de libvirt, o simplemente puede deshabilitar libvirt si no lo está utilizando, por ejemplo, instale una configuración de anulación manual (luego reinicie):
/etc/init.d/
él (un) es el enlace principal que obtienes cuando buscas en Google 'apaga iptables ubuntu'.Respuestas:
No sé sobre "Ubuntu", pero en Linux en general, "iptables" no es un servicio, es un comando para manipular el firewall del kernel netfilter. Puede "deshabilitar" (o detener) el firewall configurando las políticas predeterminadas en todas las cadenas estándar en "ACEPTAR" y eliminando las reglas.
(Es posible que también necesite eliminar 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
fuente
iptables -F
era lo que me faltaba :-)iptables-save > /tmp/rules
me salvó el día. GraciasTodos ustedes están equivocados :-)
El comando que estás buscando es:
fuente
Primero verificaría si está instalado con (probablemente lo sea):
En Ubuntu, iptables no es un servicio. Para detenerlo, debe hacer lo siguiente:
Para restaurar sus reglas anteriores:
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.
fuente
Iptables es un comando, no es un servicio, por lo que generalmente no es posible usar comandos como
o
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 la edición de ipotables o instalar un script para este alcance. Todos los servicios en Linux, ubuntu no es una excepción, son scripts ejecutables dentro de la carpeta /etc/init.d, que implementa una interfaz estándar (iniciar, detener, reiniciar) Un posible script se ve así:
Este script es parte de este 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 insertarse en un archivo llamado iptables en /etc/init.d y hacerlo ejecutable usando
y agregue el servicio a niveles de ejecución usando
Puede agregar nuevas reglas desde el shell, estas reglas estarán inmediatamente activas y se agregarán a /etc/iptables.conf cuando se detenga el servicio (significa que se guardarán con seguridad cuando se cierre el sistema).
Espero que esto sea útil para todos.
fuente
Debido a que tanto iptables como ufw son formas de administrar el firewall de netfilter en Linux, y debido a que ambos están disponibles por defecto en Ubuntu, puede usar para iniciar y detener (y administrar) las reglas del firewall.
iptables es más flexible, pero debido a que ufw proporciona un lenguaje de interfaz muy simple para una función simple y típica, puede usar:
sudo ufw disable
# Para deshabilitar el firewallsudo ufw enable
# Para habilitar el firewallPara ver la configuración actual del firewall
sudo ufw status verbose
, use , oiptables -L
.Las páginas de documentos de la Comunidad Ubuntu en iptables y UFW tienen mucha más información.
fuente
Parece que hay varias formas de administrar el firewall en Ubuntu, por lo que puede estar interesado en leer esto: https://help.ubuntu.com/community/IptablesHowTo#Configuration%20on%20startup
Para descartar todas las reglas actuales, puede usar estos comandos (ponerlos en algún script):
En el caso habitual, las reglas de firewall predeterminadas se guardan en algún archivo (por ejemplo, /etc/iptables.rules). Mientras se
iptables-restore </etc/iptables.rules
ejecuta el comando del sistema ejecutado para cargar las reglas del firewall. Por lo tanto, ejecutar el mismo comando después de descartar todas las reglas usando los comandos anteriores dará como resultado "volver a cargar el firewall" que solicitó.fuente
Si recuerdo correctamente, la forma sugerida de configurar iptables en las guías de ubuntu es configurarlo como parte de los scripts de red. lo que significa que no hay un script /etc/init.d/iptables como en los sistemas operativos de estilo BSD.
fuente
Cree un archivo en /etc/init.d/
Hacer el archivo ejecutable chmod + x
Haga un enlace simbólico a ese archivo en /etc/rc2.d/
Edite S80firewall y agregue lo siguiente
Puede agregar todas sus reglas personalizadas de iptables en este archivo
Ahora puede reiniciar el firewall (iptables) ejecutando /etc/rc2.d/S80firewall (debe ser root)
fuente
Tuve el mismo problema. De hecho, no había iptables-persistentes en
/etc/init.d
Entonces, creé el archivo iptables-persistent en
/etc/init.d
y escribió lo siguiente dentro:
y luego le dio permiso a chmod 755.
¡Ahora funciona perfectamente! Espero que pueda ayudar a alguien.
fuente
Si está ejecutando el servidor Ubuntu como un invitado VM (por ejemplo, en VirtualBox), entonces libvirt puede estar habilitado. Si es así, libvirt contiene algunos filtros de red incorporados que utilizan iptables. Estos filtros se pueden configurar como se describe en la sección de firewall en nwfilters .
Para deshabilitar las reglas de iptables, necesitará eliminar todas las reglas ofensivas de libvirt, o simplemente puede deshabilitar libvirt si no lo está utilizando, por ejemplo, instale una configuración de anulación manual (luego reinicie):
fuente
Estás utilizando el comando apropiado para RedHat y CentOS, no Ubuntu o Debian.
http://www.cyberciti.biz/faq/ubuntu-server-disable-firewall/
fuente
No hay ninguno por defecto, pero en los derivados de Debian recientes (incluido Ubuntu) puede instalar un servicio para administrar iptables :
Luego puede cargar las reglas guardadas previamente:
Revisa lo que sucedió:
O pare el servicio:
Detener el servicio, por defecto, no vaciará iptables (es decir, no deshabilitará el firewall, ver
man netfilter-persistent
).fuente