Eu acho que algumas das confusões vem de artigos como este: cyberciti.biz/faq/turn-on-turn-off-firewall-in-linux que só se aplica para Fedora / Red Hat e tem a pretensão de que você iria encontrá-lo no /etc/init.d/que (in) útil é o link principal que você obtém ao pesquisar no Google 'desativar o iptables ubuntu'.
21813 icc97
Respostas:
76
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.
certeza se nós estávamos falando sobre ufw, mas este post é sobre iptables
webjay
1
Bem, eu assumi que era uma instalação padrão do Ubuntu, e que não possui iptables, mas possui ufw.
Frederik Nielsen
22
O ufw é apenas uma interface para o iptables: "O Iptables é um firewall, instalado por padrão em todas as distribuições oficiais do Ubuntu (Ubuntu, Kubuntu, Xubuntu). Quando você instala o Ubuntu, o iptables está lá, mas permite todo o tráfego por padrão. Ubuntu 8.04 Vem with ufw - um programa para gerenciar facilmente o firewall do iptables. " help.ubuntu.com/community/IptablesHowTo
benjaoming 19/12/12
2
Pode ser, mas como ufw == iptables (mais ou menos) no Ubuntu, desabilitar o ufw é igual a desabilitar o iptables.
Frederik Nielsen
2
Provavelmente, o OP estava realmente interessado em desativar os firewalls, em vez de entender os meandros do serviço iptables para gerenciar firewalls, portanto, essa é uma boa resposta.
BobDoolittle
30
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:
Não sei por que isso tem tantos upvotes, o iptables é um módulo do kernel. Nunca é um "serviço" que pode ser "parado". Eles são usados para dizer ao kernel como lidar com conexões. Também em um ambiente de produção, você nunca deve desativar seu firewall. Se algo não funcionar, encontre a solução certa, não a mais fácil.
Broco 21/10
17
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 <[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 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).
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.
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.rulesexecutado 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.
Havia no Debian Woody (o Ubuntu existia então?), Mesmo assim ainda é implementado pelos administradores de sistemas hoje. Por que eles mudaram essa ideia?
Eu não tenho idéia ... mas eu me lembro de ter sido uma daquelas coisas irritantes que tive que descobrir quando configurei o servidor ubuntu 9.10 ou algo assim ... desde que eu queria uma distribuição de lançamento que tivesse um postgres recente e era para servidores ... caso contrário, eu corro arch linux.
Xenoterracide
2
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/
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 <[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
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):
/etc/init.d/
que (in) útil é o link principal que você obtém ao pesquisar no Google 'desativar o iptables ubuntu'.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.
(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
fonte
iptables -F
foi o que eu estava faltando :-)iptables-save > /tmp/rules
salvou meu dia. GraçasVocê está tudo errado :-)
O comando que você está procurando é:
fonte
Gostaria de verificar primeiro se ele está instalado (provavelmente):
No Ubuntu, o iptables não é um serviço. Para pará-lo, você deve fazer o seguinte:
Para restaurar suas regras anteriores:
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.
fonte
Iptables é um comando que não é um serviço; portanto, geralmente não é possível usar comandos como
ou
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:
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
e adicione o serviço aos níveis de execução usando
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.
fonte
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 firewallsudo ufw enable
# Para habilitar o firewallPara ver as configurações atuais do firewall, use
sudo ufw status verbose
, ouiptables -L
.As páginas de documentação da Comunidade Ubuntu no iptables e na UFW têm muito mais informações.
fonte
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):
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.fonte
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.
fonte
Crie um arquivo em /etc/init.d/
Tornar o arquivo executável chmod + x
Faça um link simbólico para esse arquivo em /etc/rc2.d/
Edite o S80firewall e adicione o seguinte
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)
fonte
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
e escreveu o seguinte dentro:
e depois deu permissão chmod 755.
Agora funciona perfeitamente! Espero que possa ajudar alguém.
fonte
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):
fonte
Você está usando o comando apropriado para RedHat e CentOS, não Ubuntu ou Debian.
http://www.cyberciti.biz/faq/ubuntu-server-disable-firewall/
fonte
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 :
Você pode carregar as regras salvas anteriormente:
Revise o que aconteceu:
Ou pare o serviço:
Parar o serviço, por padrão, não liberará o iptables (ou seja, não desativará o firewall, consulte
man netfilter-persistent
).fonte