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.
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
(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
iptables -F
era lo que me faltaba :-)
iptables-save > /tmp/rules
me salvó el día. Gracias
Todos ustedes están equivocados :-)
El comando que estás buscando es:
$ sudo ufw disable
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:
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.
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 <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 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).
Espero que esto sea útil para todos.
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.
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):
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 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ó.
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.
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/
ln -s /etc/init.d/fw.rc S80firewall
Edite S80firewall y agregue 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
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)
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 <sjr@debian.org>
# modified by Jonathan Wiltshire <jmw@debian.org>
# 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):
sudo bash -c 'echo "manual" > /etc/init/libvirt-bin.override'
Estás utilizando el comando apropiado para RedHat y CentOS, no Ubuntu o Debian.
http://www.cyberciti.biz/faq/ubuntu-server-disable-firewall/
No hay ninguno por defecto, pero en los derivados de Debian recientes (incluido Ubuntu) puede instalar un servicio para administrar iptables :
sudo apt install iptables-persistent
Luego puede cargar las reglas guardadas previamente:
systemctl start netfilter-persistent
Revisa lo que sucedió:
systemctl status netfilter-persistent
netfilter-persistent.service - netfilter persistent configuration
Loaded: loaded (/lib/systemd/system/netfilter-persistent.service; enabled; vendor preset: enabled)
Active: active (exited) since Sun 2019-03-24 10:49:50 IST; 16min ago
Main PID: 1674 (code=exited, status=0/SUCCESS)
Tasks: 0
Memory: 0B
CPU: 0
CGroup: /system.slice/netfilter-persistent.service
Mar 24 10:49:50 ubuntu systemd[1]: Starting netfilter persistent configuration...
Mar 24 10:49:50 ubuntu netfilter-persistent[1674]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/15-ip4tables start
Mar 24 10:49:50 ubuntu netfilter-persistent[1674]: Warning: skipping IPv4 (no rules to load)
Mar 24 10:49:50 ubuntu netfilter-persistent[1674]: run-parts: executing /usr/share/netfilter-persistent/plugins.d/25-ip6tables start
Mar 24 10:49:50 ubuntu netfilter-persistent[1674]: Warning: skipping IPv6 (no rules to load)
Mar 24 10:49:50 ubuntu systemd[1]: Started netfilter persistent configuration.
Mar 24 11:02:49 ubuntu systemd[1]: Started netfilter persistent configuration.
O pare el servicio:
systemctl stop netfilter-persistent
Detener el servicio, por defecto, no vaciará iptables (es decir, no deshabilitará el firewall, ver man netfilter-persistent
).
/etc/init.d/
él (un) es el enlace principal que obtienes cuando buscas en Google 'apaga iptables ubuntu'.