Como PREPENDER regras em vez de APPEND usando iptables?

65

Pergunta bastante básica: como PREPENDER regras em IPTABLES em vez de APPEND?

Eu tenho DROPdeclarações no final das minhas regras. Eu tenho um software para adicionar novas regras, mas adicionar regras após as DROPinstruções não é bom. Toda vez que quero adicionar uma nova regra, tenho que liberar a tabela (o que é ineficiente).

Existe uma maneira de preceder uma regra, ou seja, adicionar uma regra à parte superior da tabela e não à parte inferior?

Muito Obrigado.

cerveja
fonte

Respostas:

84

Use o -Iinterruptor:

sudo iptables -I INPUT 1 -i lo -j ACCEPT

Isso inseriria uma regra na posição # 1 na cadeia INPUT.

Yanick Girouard
fonte
2
Dang! Você me venceu por 18 segundos ... Eu não fui rápido o suficiente :(
Yanick Girouard 29/03
11
Hehehehehehehe :)
cjc 29/03/2012
2
@YanickGirourad, hah, você recebeu a marca de seleção!
Cjc 29/03/12
5
Observe também que, ao usar -I INPUT 1, nenhuma regra é substituída. Em vez disso, todas as regras serão alteradas em uma posição para cima.
Abdull
11
Nota importante de Abdull.
Halsafar 04/02
19

-Iirá inserir. Você provavelmente está usando -Apara anexar.

Você também pode fazer iptables -I chain rulenumpara inserir uma regra como número "rulenum" na cadeia "cadeia". -R chain rulenumpode ser usado para substituir uma regra específica no número "rulenum" na cadeia "chain". iptables -L -n --line-numbersmostrará os números das regras na coluna mais à esquerda.

cjc
fonte
Estou com pressa no momento ou gostaria de procurar, mas seria bom ver um exemplo de como a "cadeia" funciona aqui, ou um link.
PJ Brunet
//, consulte fedoraproject.org/wiki/… para mais informações sobre como inserir corretamente uma regra do IPTables.
Nathan Basanese
2

Para ajudar a determinar qual número de linha adicionar a nova regra, eu uso iptables-savepara gerar as regras existentes no console.

Para iniciantes, também posso sugerir um truque usando o webmin, administrar suas regras. É muito amigável e você pode facilmente reordenar as regras manualmente na lista. Ele também irá lidar com as variações 'leves' nas implementações baseadas em redhat vs debian do iptables.

AngryWombat
fonte
2
iptables -L --line-numbersé um pouco mais independente da plataforma
Sirex
11
Não sei exatamente por que alguém deveria usar o webmin para isso (ou qualquer outra coisa). É muito melhor aprender a maneira da linha de comando do que usar uma muleta.
Falcon Momot
2

Existe um programa chamado iptables-persistentque torna as regras do iptable persistentes como um serviço do SO. esse serviço inclui um arquivo de configuração como a iptables-saveexportação.

Assim, você pode reordenar as linhas no arquivo de configuração e reiniciar o serviço.

sudo service iptables-persistent restart

Tão fácil!!!!!

shgnInc
fonte