Iptables não restaurou as novas regras após a reinicialização

2

Eu tentei muitas perguntas semelhantes, como abaixo, no meu caso eu usei VM com o sistema operacional Debian na caixa virtual:

  1. Como iniciar / interromper o iptables no Ubuntu?
  2. link
  3. link
  4. link

Eu tentei liberar as regras do iptables com estes comandos.

sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT

Segue com estes comandos

sudo iptables -t nat -F
sudo iptables -t mangle -F
sudo iptables -F
sudo iptables -X

Eu ainda tenho as mesmas regras. Eu tentei usar iptables-save e recebi essa mensagem.

# Generated by iptables-save v1.4.21 on Wed Mar 28 03:44:14 2018
*nat
:PREROUTING ACCEPT [127:23299]
:INPUT ACCEPT [14:1996]
:OUTPUT ACCEPT [32:1947]
:POSTROUTING ACCEPT [32:1947]
:OUTPUT_direct - [0:0]
:POSTROUTING_ZONES - [0:0]
:POSTROUTING_ZONES_SOURCE - [0:0]
:POSTROUTING_direct - [0:0]
:POST_public - [0:0]
:POST_public_allow - [0:0]
:POST_public_deny - [0:0]
:POST_public_log - [0:0]
:PREROUTING_ZONES - [0:0]
:PREROUTING_ZONES_SOURCE - [0:0]
:PREROUTING_direct - [0:0]
:PRE_public - [0:0]
:PRE_public_allow - [0:0]
:PRE_public_deny - [0:0]
:PRE_public_log - [0:0]
-A PREROUTING -j PREROUTING_direct
-A PREROUTING -j PREROUTING_ZONES_SOURCE
-A PREROUTING -j PREROUTING_ZONES
-A OUTPUT -j OUTPUT_direct
-A POSTROUTING -j POSTROUTING_direct
-A POSTROUTING -j POSTROUTING_ZONES_SOURCE
-A POSTROUTING -j POSTROUTING_ZONES
-A POSTROUTING_ZONES -g POST_public
-A POST_public -j POST_public_log
-A POST_public -j POST_public_deny
-A POST_public -j POST_public_allow
-A PREROUTING_ZONES -g PRE_public
-A PRE_public -j PRE_public_log
-A PRE_public -j PRE_public_deny
-A PRE_public -j PRE_public_allow
COMMIT
# Completed on Wed Mar 28 03:44:14 2018
# Generated by iptables-save v1.4.21 on Wed Mar 28 03:44:14 2018
*mangle
:PREROUTING ACCEPT [4925:1051078]
:INPUT ACCEPT [4925:1051078]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4791:1080206]
:POSTROUTING ACCEPT [4791:1080206]
:FORWARD_direct - [0:0]
:INPUT_direct - [0:0]
:OUTPUT_direct - [0:0]
:POSTROUTING_direct - [0:0]
:PREROUTING_ZONES - [0:0]
:PREROUTING_ZONES_SOURCE - [0:0]
:PREROUTING_direct - [0:0]
:PRE_public - [0:0]
:PRE_public_allow - [0:0]
:PRE_public_deny - [0:0]
:PRE_public_log - [0:0]
-A PREROUTING -j PREROUTING_direct
-A PREROUTING -j PREROUTING_ZONES_SOURCE
-A PREROUTING -j PREROUTING_ZONES
-A INPUT -j INPUT_direct
-A FORWARD -j FORWARD_direct
-A OUTPUT -j OUTPUT_direct
-A POSTROUTING -j POSTROUTING_direct
-A PREROUTING_ZONES -g PRE_public
-A PRE_public -j PRE_public_log
-A PRE_public -j PRE_public_deny
-A PRE_public -j PRE_public_allow
COMMIT
# Completed on Wed Mar 28 03:44:14 2018
# Generated by iptables-save v1.4.21 on Wed Mar 28 03:44:14 2018
*security
:INPUT ACCEPT [4826:1030935]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [4814:1084121]
:FORWARD_direct - [0:0]
:INPUT_direct - [0:0]
:OUTPUT_direct - [0:0]
-A INPUT -j INPUT_direct
-A FORWARD -j FORWARD_direct
-A OUTPUT -j OUTPUT_direct
COMMIT
# Completed on Wed Mar 28 03:44:14 2018
# Generated by iptables-save v1.4.21 on Wed Mar 28 03:44:14 2018
*raw
:PREROUTING ACCEPT [4949:1054264]
:OUTPUT ACCEPT [4815:1084545]
:OUTPUT_direct - [0:0]
:PREROUTING_direct - [0:0]
-A PREROUTING -j PREROUTING_direct
-A OUTPUT -j OUTPUT_direct
COMMIT
# Completed on Wed Mar 28 03:44:14 2018
# Generated by iptables-save v1.4.21 on Wed Mar 28 03:44:14 2018
*filter
:INPUT ACCEPT [2653:591941]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [2649:609004]
COMMIT
# Completed on Wed Mar 28 03:44:14 2018

O que eu quero é como as regras abaixo. Eu configurei meu rules.v4 para esses comandos:

# Generated by iptables-save v1.4.21 on Tue Mar 27 02:48:59 2018
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
COMMIT
# Completed on Tue Mar 27 02:48:59 2018

Mas sempre que eu reinicio o sistema, sempre recebi as regras anteriores ...

O que poderia dar errado com minha configuração? Sinto falta de algo

Eu tentei desinstalar o iptables-persistent e reinstalar novamente, mas eu ainda tenho as mesmas regras ...

    
por Gagantous 28.03.2018 / 09:50

6 respostas

3

O que está no seu rules.v4 é o que será usado quando o sistema inicializar. Você pode salvar seu conf iptables-save > rules.v4 em execução e, em seguida, ele persistirá após a reinicialização se você estiver executando iptables-persistent

É porque iptables-save apenas imprime sua configuração para STDOUT, mas você deseja armazenar sua configuração no arquivo rules.v4 .

    
por 28.03.2018 / 10:21
2

Para salvar as regras atuais em um arquivo, use o comando iptables-save. Por exemplo:

iptables-save > /etc/sysconfig/iptables

Para carregar as regras salvas desse arquivo, use o comando iptables-restore. Por exemplo:

iptables-restore < /etc/sysconfig/iptables
    
por 28.03.2018 / 11:46
2

O que eu faço geralmente é colocar um script de firewall na minha pasta / root, que inclui todos os comandos do iptables. No final eu adiciono

iptables-save > /etc/iptables.conf
ip6tables-save > /etc/ip6tables.conf

Em seguida, salve, chmod + x o script e execute-o.

Em seguida, no meu / etc / network / interfaces eu adiciono

pre-up iptables-restore < /etc/iptables.conf
pre-up ip6tables-restore < /etc/ip6tables.conf

para a seção iface lo.

Isso também permite que eu copie as configurações de firewall entre os servidores, já que geralmente uso uma queda de política e abro apenas as portas necessárias.

Além disso, uma grande preocupação de segurança:

sudo iptables -P INPUT ACCEPT

Este comando define a POLÍTICA para aceitar. Isso significa que todas as portas da sua máquina estão definidas para serem abertas. Sempre use a queda de política e abra apenas as portas necessárias.

    
por 28.03.2018 / 13:47
1

O iptables não salva sua configuração por padrão nem restaura as regras após uma reinicialização.

Considere usar o Shorewall, que é um wrapper para o iptables, que facilita a configuração geral e a manutenção. O Shorewall também tem a funcionalidade de salvar suas regras e restaurá-las após a reinicialização.

o iptables salva

sudo iptables-save > /etc/iptables.rules

restauração do iptables

Você quer restaurar as regras do iptables antes de abrir sua interface, senão os atacantes terão uma pequena janela onde sua rede não está defendida.

Você também pode querer criar uma série de regras para quando sua interface estiver inoperante.

Exemplo

auto eth0
iface eth0 inet dhcp
  pre-up iptables-restore < /etc/iptables.rules
  post-down iptables-restore < /etc/iptables.downrules

link

    
por 28.03.2018 / 10:55
0

Você já experimentou o UFW (Uncomplicated Firewall) ?! link

É um programa de interface para o cmd que usa o IPTables (você também tem o gufw se necessário), tornando o live muito fácil de usar o iptables

    
por 28.03.2018 / 17:32
-1

Você tem que instalar o pacote iptables-persistent (apt-get install iptables-persistent) e salvar suas regras em /etc/iptables/rules.v4 para ipv4 e /etc/iptables/rules.v6 para ipv6 (se houver) . Confira link detalhes do inimigo

    
por 28.03.2018 / 10:07