iptables-restore falha ao carregar minhas regras

10

Estou pesquisando há algum tempo, mas nada resolve o meu problema. Estou configurando um servidor de email, mas ao escrever no iptables, recebo um erro:

iptables-restore: linha 2 falhou.

Estou tentando usar o seguinte /etc/iptables.test.rules:

# Allows SMTP access
-A INPUT -p tcp --dport 25 -j ACCEPT

# Allows pop and pops connections 
-A INPUT -p tcp --dport 110 -j ACCEPT
-A INPUT -p tcp --dport 995 -j ACCEPT

# Allows imap and imaps connections 
-A INPUT -p tcp --dport 143 -j ACCEPT
-A INPUT -p tcp --dport 993 -j ACCEPT

Depois disso, estou emitindo o seguinte comando:

sudo iptables-restore < /etc/iptables.test.rules

No entanto, recebo isso de volta:

iptables-restore: line 2 failed.

Não sei qual é o problema. Alguém pode esclarecer?

Estou usando o Ubuntu 10.10 LTS

Søren Lorentzen
fonte

Respostas:

13

É porque esse arquivo não está no formato esperado. Você deve adicionar suas regras manualmente na primeira vez e usar iptables-savepara obter um arquivo no formato esperado.

No entanto, é bastante simples "imitar" o formato que o iptables-restore espera.

Adicione uma linha apenas *filterna parte superior do arquivo.

Adicione uma linha com apenas COMMIT na parte inferior.

Então você acaba ficando assim:

*filter    

# Allows SMTP access
-A INPUT -p tcp --dport 25 -j ACCEPT

# Allows pop and pops connections 
-A INPUT -p tcp --dport 110 -j ACCEPT
-A INPUT -p tcp --dport 995 -j ACCEPT

# Allows imap and imaps connections 
-A INPUT -p tcp --dport 143 -j ACCEPT
-A INPUT -p tcp --dport 993 -j ACCEPT

COMMIT

Existem alguns outros trechos que devem ter também, mas que devem fazê-lo funcionar. Depois de fazer isso, você pode usariptables-save >filename para obter o arquivo de salvamento totalmente formatado corretamente filename.

Observe que, se você usar iptables-saveseus comentários no arquivo, será perdido (ele substituirá o arquivo inteiro por um formato semelhante).

Césio
fonte
0

Corre:

iptables-save > /etc/sysconfig/iptables

então inicie / reinicie seu iptablesserviço

Younes
fonte