Respostas:
Eu não sei sobre "Ubuntu", mas no Linux geralmente, "iptables" não é um serviço - é um comando para manipular o firewall do kernel do netfilter. Você pode "desativar" (ou parar) o firewall, definindo as políticas padrão em todas as cadeias padrão como "ACEITAR" e liberando as regras.
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -F
(Você também pode liberar outras tabelas, como "nat", se você as tiver usado)
O seguinte artigo no site do Ubuntu descreve a configuração do iptables para uso com o NetworkManager: https://help.ubuntu.com/community/IptablesHowTo
iptables -F
foi o que eu estava faltando :-)
iptables-save > /tmp/rules
salvou meu dia. Graças
Você está tudo errado :-)
O comando que você está procurando é:
$ sudo ufw disable
Gostaria de verificar primeiro se ele está instalado (provavelmente):
dpkg -l | grep iptables
No Ubuntu, o iptables não é um serviço. Para pará-lo, você deve fazer o seguinte:
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 suas regras anteriores:
iptables-restore < /root/firewall.rules
Isso foi retirado de http://www.cyberciti.biz/faq/turn-on-turn-off-firewall-in-linux/ e foi testado em muitas instalações do Ubuntu 8.X e 9.10.
Iptables é um comando que não é um serviço; portanto, geralmente não é possível usar comandos como
service iptables start
ou
service iptables stop
para iniciar e parar o firewall, mas algumas distros, como o centos, instalaram um serviço chamado iptables para iniciar e parar o firewall e um arquivo de configuração para configurá-lo. De qualquer forma, é possível criar um serviço para gerenciar a edição de ipotables ou instalar um script para esse escopo. Todos os serviços no linux, o ubuntu não são uma exceção, são scripts executáveis dentro da pasta /etc/init.d, que implementam uma interface padrão (iniciar, parar, reiniciar). Um script possível é o seguinte:
#!/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 faz parte deste tutorial , todos os comandos para configurar o firewall devem ser inseridos, de acordo com o script acima, no arquivo /etc/iptables.conf. Esse script deve ser inserido em um arquivo chamado iptables em /etc/init.d e torná-lo executável usando
chmod+x *iptables*
e adicione o serviço aos níveis de execução usando
update-rc.d iptables defaults
Você pode adicionar novas regras a partir do shell, essas regras serão ativadas imediatamente e serão adicionadas ao /etc/iptables.conf quando o serviço for interrompido (significa que elas serão salvas com certeza quando o sistema for desligado).
Espero que isso seja útil para todos.
Como o iptables e o ufw são maneiras de gerenciar o firewall do netfilter no Linux e como ambos estão disponíveis por padrão no Ubuntu, você pode usar para iniciar e parar (e gerenciar) regras de firewall.
O iptables é mais flexível, mas como o ufw fornece uma linguagem de interface muito simples para funções simples e típicas, você pode usar:
sudo ufw disable
# Para desativar o firewall
sudo ufw enable
# Para habilitar o firewall
Para ver as configurações atuais do firewall, use sudo ufw status verbose
, ou iptables -L
.
As páginas de documentação da Comunidade Ubuntu no iptables e na UFW têm muito mais informações.
Parece que existem várias maneiras de gerenciar o firewall no Ubuntu, então você pode estar interessado em ler o seguinte: https://help.ubuntu.com/community/IptablesHowTo#Configuration%20on%20startup
Para descartar todas as regras atuais, você pode usar estes comandos (coloque-os em algum 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
Normalmente, suas regras de firewall padrão são salvas em algum arquivo (por exemplo, /etc/iptables.rules). Durante a inicialização, o comando do sistema foi iptables-restore </etc/iptables.rules
executado para carregar regras de firewall. Portanto, a execução do mesmo comando após a eliminação de todas as regras usando os comandos acima resultará em "recarregar o firewall" solicitado.
Se bem me lembro, a maneira sugerida de configurar o iptables nos guias do ubuntu é configurá-lo como parte dos scripts de rede. o que significa que não há script /etc/init.d/iptables como existe nos sistemas operacionais no estilo BSD.
Crie um arquivo em /etc/init.d/
touch fw.rc
Tornar o arquivo executável chmod + x
Faça um link simbólico para esse arquivo em /etc/rc2.d/
ln -s /etc/init.d/fw.rc S80firewall
Edite o S80firewall e adicione o seguinte
iptables --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -F
Você pode adicionar todas as suas regras personalizadas do iptables neste arquivo
Agora você pode reiniciar o firewall (iptables) executando /etc/rc2.d/S80firewall (deve ser root)
Eu tive o mesmo problema. De fato, não havia iptables persistente no/etc/init.d
Então, eu criei o arquivo iptables-persistent em /etc/init.d
nano /etc/init.d/iptables-persistent
e escreveu o seguinte 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
e depois deu permissão chmod 755.
chmod 755 /etc/init.d/iptables-persistent
Agora funciona perfeitamente! Espero que possa ajudar alguém.
Se você estiver executando o servidor Ubuntu como convidado da VM (por exemplo, no VirtualBox), a libvirt poderá estar ativada. Nesse caso, o libvirt contém alguns filtros de rede embutidos que utilizam iptables. Esses filtros podem ser configurados conforme descrito na seção de firewall em nwfilters .
Para desabilitar as regras do iptables, você precisará remover todas as regras ofensivas da libvirt ou simplesmente desabilitar a libvirt se não a estiver usando - por exemplo, instale uma configuração de substituição manual (depois reinicie):
sudo bash -c 'echo "manual" > /etc/init/libvirt-bin.override'
Você está usando o comando apropriado para RedHat e CentOS, não Ubuntu ou Debian.
http://www.cyberciti.biz/faq/ubuntu-server-disable-firewall/
Por padrão, não há nenhum, mas nos derivados recentes do debian (incluindo o Ubuntu) você pode instalar um serviço para gerenciar o iptables :
sudo apt install iptables-persistent
Você pode carregar as regras salvas anteriormente:
systemctl start netfilter-persistent
Revise o que aconteceu:
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.
Ou pare o serviço:
systemctl stop netfilter-persistent
Parar o serviço, por padrão, não liberará o iptables (ou seja, não desativará o firewall, consulte man netfilter-persistent
).
/etc/init.d/
que (in) útil é o link principal que você obtém ao pesquisar no Google 'desativar o iptables ubuntu'.