Diferenças

Aqui você vê as diferenças entre duas revisões dessa página.

Link para esta página de comparações

iptables [2017/03/09 17:01]
iptables [2020/06/17 12:38] (atual)
Linha 1: Linha 1:
 +====== Algumas dicas do uso do ipTables ======
  
 +Em todas as regras de iptables listadas aqui, usarei a eth0 como exemplo. Não se esqueçam de alterar conforme as interfaces de suas máquinas.
 +
 +Nos exemplos que darei aqui os defaults das filas INPUT e OUTPUT foram alterados para DROP, assim para todas as regras serão necessárias duas regras para permitir o tráfego. ​
 +
 +Caso a sua rede interna seja confiável, você pode fazer com que a fila de OUTPUT tenha como default a política ACCEPT, assim as regras de firewall bastarão ser criadas na fila de INPUT, ou seja, para controlar o tráfego entrante.
 +
 +== Configurando as regras para a política default ==
 +
 +Por default as políticas do iptables é ACCEPT para todas as filas. Você pode alterar estas políticas para DROP, por exemplo, para todas as filas usando o seguinte comando:
 +
 +<file bash>
 +iptables -P INPUT DROP
 +iptables -P FORWARD DROP
 +iptables -P OUTPUT DROP
 +</​file>​
 +
 +Quando as filas INPUT e OUTPUT têm como default a opção DROP, para cada regra de firewall que você criar, você terá que criar duas regras uma na fila INPUT e uma na fila OUTPUT para permitir o tráfego, ou seja, uma regra para o tráfego entrante e uma regra para o tráfego sainte.
 +
 +== Apagar regras existentes retornando ao default ==
 +
 +Para apagar as regras que existam no ipTables, basta fazer o comando flush, como mostrado a seguir:
 +
 +<file bash>
 +iptables -F
 +(ou)
 +iptables --flush
 +</​file>​
 +
 +É uma boa prática, antes de começar a definir novas regras, fazer uma limpeza geral, retornado as regras para o default usando o comando acima. ​
 +
 +== Apagar regras existentes ==
 +Para apagar uma regra de uma fila usando o índice da lista, deve-se usar o comando abaixo
 +
 +<file bash>
 +iptables -t nat -D POSTROUTING <id>
 +</​file>​
 +
 +Onde voce deve indicar o nome da fila através do parâmetro -t e o <id> que seria a posição dentro da lista, por exemplo: 1 para a primeira regra da lista.
 +
 +== Salvando as regras entre reboots no Ubuntu ==
 +
 +No Ubuntu, este serviço é realizado pelo pacote iptables-persistent.
 +Então vamos instalá-lo:​
 +
 +<file bash>
 +sudo apt-get install iptables-persistent
 +</​file>​
 +
 +Depois de instalado, para salvar/​restaurar as regras basta usar os parâmetros:​ save/reload respectivamente:​
 +
 +<file bash>
 +sudo /​etc/​init.d/​iptables-persistent save 
 +sudo /​etc/​init.d/​iptables-persistent reload
 +</​file>​
 +
 +== Alterando o endereço ip de destino ==
 +
 +A regra abaixo muda o endereço ip de destino 1.2.3.4 para o endereço 5.6.7.8
 + 
 +<file bash>
 +iptables -t nat -I OUTPUT --dest 1.2.3.4 -p tcp --dport 80 -j DNAT --to-dest 5.6.7.8
 +</​file>​
 +
 +Pode se fazer a mesma regra com uma lista de portas se for necessário,​ do seguinte modo:
 +
 +<file bash>
 +iptables -t nat -I OUTPUT --dest 1.2.3.4 -p tcp --dport 65500:65530 -j DNAT --to-dest 5.6.7.8:​65500-65530
 +</​file>​
 +
 +== Como fazer para o iptables mostrar o número das linhas ==
 +
 +O iptables pode listar as regras com a numeração de ordenação das regras, assim se pode inserir uma regra no meio da lista, que por default sempre é colocada como última.
 +
 +<file bash>
 +iptables -nL --line-numbers
 +</​file>​
 +
 +== Como inserir uma regra no meio da lista de regras ==
 +
 +Se for necessário acrescentar uma regra no meio da lista de regras se deve usar a seguinte sintaxe.
 +
 +<file bash>
 +iptables -I INPUT {LINE_NUMBER} -i eth0 -p tcp --dport 22 -s 1.2.3.4 -j ACCEPT -m comment --comment "Esta regra tem que vir antes das demais"​
 +</​file>​