Professional Documents
Culture Documents
www.eriberto.pro.br/iptables
by Joo Eriberto Mota Filho
3. TABELAS
Tabela Filter
Vejamos o funcionamento da tabela filter (default) e as suas respectivas chains:
--> OUTPUT: qualquer pacote gerado na mquina filtro e que deva sair para a rede ser
tratado pela chain OUTPUT;
--> FORWARD: qualquer pacote que atravessa o filtro, oriundo de uma mquina e direcionado
a outra, ser tratado pela chain FORWARD.
http://eriberto.pro.br/iptables/3.html 1/20
17/10/2017 Iptables BR - by Eriberto
Regras de filtragem
As regras (rules) de fitragem, geralmente, so compostas assim:
Exemplo:
A linha acima determina que todos os pacotes destinados mquina 192.168.1.1 devem ser
descartados. No caso:
opo: -A
chain: FORWARD
dados: -d 192.168.1.1
ao: DROP
Opes
-P --> Policy (poltica). Altera a poltica da chain. A poltica inicial de cada chain
ACCEPT. Isso faz com que o filtro, inicialmente, aceite qualquer INPUT, OUTPUT ou
FORWARD. A poltica pode ser alterada para DROP, que ir negar o servio da chain, at
que uma opo -A entre em vigor. O -P no aceita REJECT ou LOG. Exemplos:
-A --> Append (anexar). Acresce uma nova regra chain. Tem prioridade sobre o -P.
Geralmente, como buscamos segurana mxima, colocamos todas as chains em poltica DROP,
com o -P e, depois, abrimos o que necessrio com o -A. Exemplos:
-D --> Delete (apagar). Apaga uma regra. A regra deve ser escrita novamente, trocando-se
a opo para -D. Exemplos:
http://eriberto.pro.br/iptables/3.html 2/20
17/10/2017 Iptables BR - by Eriberto
Para apagar as regras anteriores, usa-se:
Tambm possvel apagar a regra pelo seu nmero de ordem. Pode-se utilizar o -L para
verificar o nmero de ordem. Verificado esse nmero, basta citar a chain e o nmero de
ordem. Exemplo:
#iptables -D FORWARD 4
#iptables -L
#iptables -L FORWARD
#iptables -F
#iptables -F FORWARD
Chains
As chains j so conhecidas:
FORWARD --> Refere-se a todos os pacotes oriundos de uma mquina e destinados a outra.
So pacotes que atravessam a mquina filtro, mas no so destinados a ela.
Dados
-s 172.20.0.0/255.255.0.0
No caso, vimos a sub-rede 172.20.0.0. Para hosts, a mscara sempre ser 255.255.255.255.
Exemplo:
-s 172.20.5.10/255.255.255.255
Agora vimos o host 172.20.5.10. Ainda no caso de hosts, a mscara pode ser omitida. Caso
isso ocorra, o iptables considera a mscara como 255.255.255.255. Exemplo:
http://eriberto.pro.br/iptables/3.html 3/20
17/10/2017 Iptables BR - by Eriberto
-s 172.20.5.10
-s 172.20.0.0/16
-s www.chat.com.br
-p icmp
-i ppp0
-i eth+
! --> Excluso. Utilizado com -s, -d, -p, -i, -o e outros, para excluir o argumento.
Exemplo:
-s ! 10.0.0.1
-p ! tcp
--sport --> Source Port. Porta de origem. S funciona com as opes -p udp e -p tcp.
Exemplo:
-p tcp --sport 80
http://eriberto.pro.br/iptables/3.html 4/20
17/10/2017 Iptables BR - by Eriberto
Refere-se porta 80 sobre protocolo TCP.
--dport --> Destination Port. Porta de destino. S funciona com as opes -p udp e -p
tcp. Similar a --sport.
Aes
As principais aes so:
REJECT --> Igual ao DROP, mas avisa a origem sobre o ocorrido (envia pacote icmp
unreachable).
LOG --> Cria um log referente regra, em /var/log/messages. Usar antes de outras aes.
#iptables -L
---------------------------------------
#iptables -F
---------------------------------------
---------------------------------------
---------------------------------------
---------------------------------------
---------------------------------------
Os pacotes oriundos da sub-rede 10.0.0.0 (mscara 255.0.0.0) e destinados aos hosts cujos
endereos IP respondem pelo nome www.chat.com.br devero ser descartados. Dever ser
enviado um ICMP avisando origem.
---------------------------------------
Os pacotes oriundos de qualquer lugar e destinados aos hosts cujos endereos IP respondem
pelo nome www.chat.com.br devero ser descartados.
---------------------------------------
Os pacotes destinados sub-rede 10.0.0.0 (mscara 255.0.0.0) e oriundos aos hosts cujos
endereos IP respondem pelo nome www.chat.com.br devero ser descartados.
---------------------------------------
Os pacotes oriundos aos hosts cujos endereos IP respondem pelo nome www.chat.com.br e
destinados a qualquer lugar devero ser descartados.
---------------------------------------
---------------------------------------
Os pacotes icmp oriundos do host 10.0.0.5 e destinados a qualquer lugar devero ser
descartados.
---------------------------------------
---------------------------------------
Os pacotes que entrarem por qualquer interface, exceto a eth0, sero aceitos.
---------------------------------------
---------------------------------------
http://eriberto.pro.br/iptables/3.html 6/20
17/10/2017 Iptables BR - by Eriberto
#iptables -A FORWARD -p tcp --dport 25 -j ACCEPT
---------------------------------------
Observaes importantes
Concluso: se houver impasse entre regras, sempre valer a primeira. Assim, entre as
regras:
Valer:
J entre as regras:
Valer:
Em resumo:
http://eriberto.pro.br/iptables/3.html 7/20
17/10/2017 Iptables BR - by Eriberto
http://eriberto.pro.br/iptables/3.html 8/20
17/10/2017 Iptables BR - by Eriberto
O retorno
Ao se fazer determinadas regras, devemos prever o retorno. Assim, digamos que exista a
seguinte situao:
Com as regras anteriores, fechamos todo o FORWARD e depois abrimos da sub-rede 10.0.0.0
para a sub-rede 172.20.0.0. No entanto, no tornamos possvel a resposta da sub-rede
172.20.0.0 para a sub-rede 10.0.0.0. O correto, ento, seria:
IP FORWARD
Caso haja o envolvimento de mais de uma sub-rede, ser necessrio que o IP FORWARD seja
ativado para que o iptables funcione corretamente. O IP FORWARD, via kernel, pode ser
ativado pelo comando:
http://eriberto.pro.br/iptables/3.html 9/20
17/10/2017 Iptables BR - by Eriberto
#echo 1 > /proc/sys/net/ipv4/ip_forward
Cabe lembrar que a reinicializao do daemon de rede far com que o roteamento seja
perdido. Uma forma de deixar a regra de roteamento permanentemente ativada, resistindo a
qualquer tipo de reinicializao, seria a alterao do arquivo /etc/sysctl.conf:
net.ipv4.ip_forward = 1
O carregamento
#rmmod ipchains
Nada impede que as regras sejam colocadas diretamente dentro de um shell script.
Extenses
As extenses permitem filtragens especiais, principalmente contra ataques de hackers. Os
exemplos abaixo mostram como controlar os pings que atravessam o filtro:
Contra Ping
http://eriberto.pro.br/iptables/3.html 10/20
17/10/2017 Iptables BR - by Eriberto
#iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
#iptables -A FORWARD -p icmp --icmp-type echo-request -j DROP
No faz parte dos meus objetivos o aprofundamento no assunto extenses. Procure por
documentos especializados. Consulte a seo de links.
Mais proteo
Existe, ainda, uma regra muito importante que pode ser utilizada como segurana. a
proteo contra pacotes danificados, suspeitos ou mal formados.
Mascaramento
O mascaramento uma forma de fazer NAT (Network Address Translation). Com isso,
possvel fazer uma rede privada navegar na Internet. A rede solicita os dados para a
mquina que faz o mascaramento. Essa busca tais dados na Internet...
http://eriberto.pro.br/iptables/3.html 11/20
17/10/2017 Iptables BR - by Eriberto
http://eriberto.pro.br/iptables/3.html 12/20
17/10/2017 Iptables BR - by Eriberto
Redirecionamento de portas
Redirecionamento de servidores
Proxy transparente
Balanceamento de carga
O balanceamento de carga (load balance) uma tcnica utilizada para distribuir carga
entre servidores sincronizados. O load balance o ato de distribuir os clientes aos
servidores mais desocupados. Esse trabalho tambm pode ser feito por servidores DNS.
A tabela NAT
A tabela NAT funciona da seguinte forma:
http://eriberto.pro.br/iptables/3.html 13/20
17/10/2017 Iptables BR - by Eriberto
--> SNAT: aplica-se quando desejamos alterar o endereo de origem do pacote. Somente a
chain POSTROUTING faz SNAT. O mascaramento um exemplo de SNAT.
--> DNAT: aplica-se quando desejamos alterar o endereo de destino do pacote. As chains
PREROUTING e OUTPUT fazem DNAT. O redirecionamento de porta, o redirecionamento de
servidor, o load balance e o proxy transparente so exemplos de DNAT.
Regras de NAT
Para fazer o mascaramento, deveremos, antes, carregar o mdulo de NAT:
#modprobe iptable_nat
As regras mais utilizadas, alm da maioria dos recursos descritos para uso com a tabela
filter, contm o seguinte:
Chains
--> PREROUTING: utilizada para analisar pacotes que esto entrando no kernel para
sofrerem NAT. O PREROUTING pode fazer aes de NAT com o endereo de destino do pacote.
Isso conhecido como DNAT (Destination NAT);
--> POSTROUTING: utilizada para analisar pacotes que esto saindo do kernel, aps
sofrerem NAT. O POSTROUTING pode fazer aes de NAT com o endereo de origem do pacote.
Isso conhecido como SNAT (Source NAT);
http://eriberto.pro.br/iptables/3.html 14/20
17/10/2017 Iptables BR - by Eriberto
--> OUTPUT: utilizada para analisar pacotes que so gerados na prpria mquina e que iro
sofrer NAT. O OUTPUT pode fazer aes de NAT com o endereo de destino do pacote. Tambm
DNAT.
Opes
-A --> Append (anexar).
-D --> Deletar.
Dados
-t --> Table (tabela). Estabelece a tabela a ser utilizada. A tabela default, por
omisso, filter. Para o mascaramento ou NAT ser nat. Exemplo:
--to --> utilizado para definir IP e porta de destino, aps um DNAT, ou de origem, aps
um SNAT. Deve ser utilizado aps uma ao (-j ao). Assim:
--dport --> assim como -d define um host de destino, --dport define uma porta de destino.
Deve ser utilizado antes de uma ao (-j ao). Antes de --dport, deve ser especificado
um protocolo (-p). Exemplo:
--sport --> assim como -s define um host de origem, --sport define uma porta de origem.
Deve ser utilizado antes de uma ao (-j ao).
Obs: A maioria dos dados bsicos apresentados para a tabela filter continuam valendo.
Exemplo: -p servir para definir um protocolo de rede; -d define um host de destino.
Aes
SNAT --> Utilizado com POSTROUTING para fazer aes de mascaramento da origem.
DNAT --> Utilizado com PREROUTING e OUTPUT para fazer aes de redirecionamento de portas
e servidores, balanceamento de carga e proxy transparente. Caso a porta de destino no
seja especificada, valer a porta de origem. No filtro, a porta que ser redirecionada
no pode existir ou estar ocupada por um daemon.
http://eriberto.pro.br/iptables/3.html 15/20
17/10/2017 Iptables BR - by Eriberto
MASQUERADE --> Faz mascaramento na sada de dados.
REDIRECT --> Redireciona uma requisio para uma porta local do filtro.
#iptables -t nat -L
---------------------------------------
#iptables -t nat -F
---------------------------------------
Todos os pacotes que sarem pela interface ppp0 (modem) sero mascarados. Isso d um
nvel de segurana elevado rede que est atrs da ppp0. uma boa regra para navegao
na Internet. Note que esse tipo de mascaramento no usa SNAT.
---------------------------------------
Tem o mesmo efeito da regra anterior. No entanto, parece ser menos segura, pois
estabelece que qualquer pacote destinado a qualquer outra rede, diferente da interna,
ser mascarado. A regra anterior refere-se aos pacotes que saem por determinada
interface. A opo -d 0/0 poderia ser -d 0.0.0.0/0 tambm. uma outra regra para
navegao na Internet.
---------------------------------------
---------------------------------------
Qualquer pacote TCP, originado na mquina filtro, destinado a qualquer porta da mquina
10.0.0.10, ser desviado para a mquina 10.0.0.1 .
---------------------------------------
Essa regra faz com que todos os pacotes que iro sair pela interface eth0 tenham o seu
endereo de origem alterado para 200.20.0.1 .
---------------------------------------
Todos os pacotes que entrarem pela eth0 sero enviados para a mquina 172.20.0.1
http://eriberto.pro.br/iptables/3.html 16/20
17/10/2017 Iptables BR - by Eriberto
---------------------------------------
Aqui haver o load balance. Todos os pacotes que entrarem pela eth0 sero distribudos
entre as mquinas 172.20.0.1 , 172.20.0.2 e 172.20.0.3
---------------------------------------
Todos os pacotes TCP que vierem da rede 10.0.0.0, com mscara 255.0.0.0, destinados
porta 80 de qualquer host, no sairo; sero redirecionados para a porta 3128 do filtro.
Isso o passo necessrio para fazer um proxy transparente. O proxy utilizado dever
aceitar esse tipo de recurso. No caso, o Squid, que aceita transparncia, dever estar
instalado na mquina filtro, servindo na porta 3128.
---------------------------------------
Uma situao interessante: todos os pacotes que sarem da rede 192.168.1.0 sero
transformados em 200.20.5.0 .
---------------------------------------
Vamos permitir que a rede 10.0.0.0 navegue na Internet. A mquina filtro (gateway) ser a
10.0.0.1. Regras:
O procedimento totalmente seguro, pois discrimina uma origem, que s poder sair pela
ppp0, de forma mascarada. Hoje em dia, o carregamento do mdulo iptable_nat, na maioria
das vezes, se d automaticamente, dispensando a segunda linha.
http://eriberto.pro.br/iptables/3.html 17/20
17/10/2017 Iptables BR - by Eriberto
#echo 1 > /proc/sys/net/ipv4/ip_forward
#iptables -t nat -A POSTROUTING -s 10.0.0.10 -o ppp0 -j MASQUERADE
#iptables -t nat -A POSTROUTING -s 10.0.0.20 -o ppp0 -j MASQUERADE
#iptables -t nat -A POSTROUTING -s 10.5.2.41 -o ppp0 -j MASQUERADE
Execuo de FTP
#insmod ip_conntrack_ftp
#insmod ip_nat_ftp
Salvamento de regras
--> Salvando
--> Recuperao
#!/bin/bash
echo 1 > /proc/sys/net/ipv4/ip_forward
modprobe iptable_nat
iptables-restore < /etc/iptables.rules
insmod ip_conntrack_ftp
insmod ip_nat_ftp
http://eriberto.pro.br/iptables/3.html 18/20
17/10/2017 Iptables BR - by Eriberto
Apesar da primeira (tabela nat) possibilitar a navegao mascarada da rede 10.0.0.0 na
Internet, essa navegao no ocorrer, pois a segunda regra (tabela filter) ir barrar o
forward entre as redes.
O filtro ser isolado quando estiver entre mquinas, com funo exclusiva de filtro:
O filtro ser incorporado quando no houver uma mquina isolada como filtro. Nesse caso,
as mquinas da rede devero estabelecer, individualmente, as suas prprias regras de
filtragem. o sistema mais inseguro:
Nada impede que os dois sistemas sejam utilizados em parceria, oferendo-se assim um alto
grau de segurana rede. Cabe ressaltar que no filtro incorporado h maior nvel de
insegurana, uma vez que outros processos rodam junto com o filtro.
http://eriberto.pro.br/iptables/3.html 19/20
17/10/2017 Iptables BR - by Eriberto
estados, proxies, IDS, IPS, antivrus de rede etc. No deixe de conhecer o IPS
HLBR, disponvel em http://hlbr.sourceforge.net. Se preferir, clique aqui para
fazer download.
http://eriberto.pro.br/iptables/3.html 20/20