Criar tabela no iptables

8

Quero criar uma tabela personalizada usando o iptables para poder adicionar minhas cadeias personalizadas. Mas não vejo nenhuma opção para fazer isso. Tentei procurá-lo, mas não encontrei nada. Por favor ajude.

Tarun
fonte

Respostas:

16

Eu acho que você está procurando criar uma cadeia , não uma tabela.

   -N, --new-chain chain
          Create a new user-defined chain by the given name.  There must be no target of that name already.

Exemplo ( -t filterestá implícito):

iptables -N Services
iptables -A INPUT -j Services
iptables -A Services -m tcp -p tcp --dport 80 -j ACCEPT

As tabelas podem ser selecionadas com a -topção:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

E se você estiver usando iptables-restore, as duas regras acima podem ser combinadas para:

*nat
-A POSTROUTING -j MASQUERADE
COMMIT

*filter
:Services -
-A INPUT -j Services
-A Services -m tcp -p tcp --dport 80 -j ACCEPT
COMMIT
Lekensteyn
fonte
Obrigado pela resposta, mas estou procurando criar uma tabela diferente para minhas cadeias personalizadas. Criar uma tabela diferente não é possível?
Tarun
1
Por que você deseja criar uma tabela diferente? Ser capaz de agrupar suas cadeias? A menos que você escreva seu próprio módulo do kernel, não poderá inserir novas cadeias. Veja esta figura sobre o fluxo de pacotes para entender para que são usadas as diferentes tabelas.
Lekensteyn
Ok, eu não sabia disso. Obrigado pela ajuda.
Tarun
5

A criação de uma tabela é feita no nível do kernel; normalmente não há necessidade de criar um novo, a menos que alguém esteja adicionando recursos de TCP / IP do kernel.

O que você provavelmente deseja fazer é criar uma nova cadeia em uma das tabelas existentes, o que é feito com o -Nsinalizador.

Ignacio Vazquez-Abrams
fonte
"normalmente não há necessidade de ..." - mas cadeias personalizadas tornam as coisas muito mais organizadas. Por exemplo, adicionando uma cadeia personalizada a uma interface.
Konrad Gajewski