Por que as tabelas foram construídas em ipchains?

4

Por que as tabelas são construídas em ipchains ? Qual foi o benefício de adicionar tabelas a ipchains ? Existe um cenário simples que ilustraria como as tabelas são usadas para aumentar o desempenho ou oferecer algum outro benefício?

    
por colemik 21.12.2011 / 20:21

2 respostas

2

"tabelas" foram incluídas porque o conceito foi transferido para o ipchains a partir de quando o Linux usava o firewall IPFW da BSD. Eles facilitam a aplicação de uma ou mais regras a um conjunto de IPs que devem ser administrativamente tratados da mesma forma.

O lugar mais comum que vejo é quando uso listas pretas ou brancas. Você pode estar usando o fail2ban para bloquear automaticamente os IPs que estão "atacando" o servidor, adicionando-os a uma tabela incorreta em vez de criar uma regra para cada IP que mantém as coisas limpas. Da mesma forma, você pode ter um conjunto de máquinas "administrativas" em sua rede com IPs diversos, você pode adicioná-las a uma tabela e, em seguida, escrever uma única regra que permita o SSH em seu servidor.

    
por 21.12.2011 / 20:33
2
iptables -N dmzrules
iptables -A dmzrules -p TCP --dport 22  -j ACCEPT
iptables -A dmzrules -p TCP --dport 80  -j ACCEPT
iptables -A dmzrules -p TCP --dport 443 -j ACCEPT
iptables -A dmzrules -p UDP --dport 53  -j ACCEPT
iptables -A dmzrules -p UDP --dport 123 -j ACCEPT


iptables -A FORWARD -s 10.0.91.0/24    -j dmzrules
iptables -A FORWARD -s 192.168.22.0/24 -j dmzrules
iptables -A FORWARD -s 172.16.33.0/24  -j dmzrules

Portanto, no exemplo acima, você não precisa escrever regras para o mesmo conjunto de portas UDP / TCP permitidas repetidas vezes para as redes permitidas. Então, você tem 9 linhas ao invés de 15. Deve haver alguma melhoria no desempenho, já que cada pacote de entrada não precisa tentar corresponder em 15 regras. Em vez disso, um pacote será combinado com as 3 regras INPUT e, se houver uma correspondência no IP de origem, ele tentará corresponder às 4 regras na tabela dmzrules.

Eu acho que se você estiver usando o iptables para uma única caixa, pode ser menos útil usar tabelas. Você provavelmente pode apenas enumerar as portas permitidas de uma só vez, embora o ponto de Chris sobre as listas negras / brancas seja algo a ser lembrado, ou seja, você pode atualizar essa lista sem prejudicar o conjunto principal de regras.

    
por 21.12.2011 / 21:03

Tags