Firewall: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Linha 72: Linha 72:
  modprobe iptable_nat
  modprobe iptable_nat
  iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE
  iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE
:#O primeiro comando ativa o '''NAT''' no módulo '''iptables'''.  
#O primeiro comando ativa o '''NAT''' no módulo '''iptables'''.  
:#O segundo comando define a regra para fazer com que todo o tráfego originado em 192.168.1.0/24, e que sai pela interface eth1 deve ser mascarado com o endereço IP dessa interface. Esta regra diz o seguinte: todos os pacotes que passarem (POSTROUTING) por esta máquina com origem de 192.168.1.0/24 e sairem pela interface eth1 serão mascarados, ou seja sairão desta máquina com o endereço de origem como sendo da eth1. O alvo MASQUERADE foi criado para ser usado com links dinâmicos (tipicamente discados ou ADSL), pois os mapeamentos se perdem se o link sair do ar.
#O segundo comando define a regra para fazer com que todo o tráfego originado em 192.168.1.0/24, e que sai pela interface eth1 deve ser mascarado com o endereço IP dessa interface. Esta regra diz o seguinte: todos os pacotes que passarem (POSTROUTING) por esta máquina com origem de 192.168.1.0/24 e sairem pela interface eth1 serão mascarados, ou seja sairão desta máquina com o endereço de origem como sendo da eth1. O alvo MASQUERADE foi criado para ser usado com links dinâmicos (tipicamente discados ou ADSL), pois os mapeamentos se perdem se o link sair do ar.


==Referências==
==Referências==

Edição das 21h06min de 23 de fevereiro de 2016

Firewall

Um Firewall tem por objetivo aplicar políticas de segurança no acesso a um rede ou servidor. O firewall pode ser do tipo filtros de pacotes, atuando no nível da camada IP, ou Servidor Proxy, atuando no nível das aplicações.

Firewall com Iptables

O Iptables é uma ferramenta que permite implementar regras para firewall, disponível em todas as distribuições Linux.

O Iptables normalmente já vem instalado no Ubuntu.

As páginas man fornecem referência para utilizar o comando iptables para construir regras para filtros de pacotes':

man iptables

Para verificar as regras existentes, pode utilizar o comando:

sudo iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination          

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
Cada Chain é um conjunto de regras utilizadas para filtrar pacotes. Por default há três grupos de regras (INPUT, FORWARD e OUTPUT), todas com a política ACCEPT (aceitar) como padrão. Observa-se também o cabeçalho de cada coluna que formam as regras: target (alvo), prot (protocolo), opt (opções), source (fonte) e destination (destino).

Exemplos de filtros de pacotes TCP e UDP

Referência: [1].

1) Exemplo de regra que pode ser utilizada em um computador desktop conectado a Internet para ignorar conexões vindas em qualquer porta TCP:

  • Execute a regra no seu Servidor:
sudo iptables -A INPUT -p tcp --syn -j DROP
  • Verifique o resultado com:
sudo iptables -L
Chain INPUT (policy ACCEPT)
target   prot opt source      destination         
DROP     tcp  --  anywhere    anywhere       tcp flags:FIN,SYN,RST,ACK/SYN
  • Teste o acesso ao servidor Web de seu servidor;
  • Elimine a regra com o comando:
sudo iptables -D INPUT -p tcp --syn -j DROP
  • Teste novamente o acesso ao servidor Web.

2) Exemplo de regra que permite aos computadores da rede interna de se conectar normalmente, mas bloqueia tudo que vem da Internet em qualquer porta TCP ou UDP:

sudo iptables -A INPUT -p tcp --syn -s 192.168.0.0/255.255.255.0 -j ACCEPT
sudo iptables -A INPUT -p tcp --syn -j DROP
sudo iptables -A INPUT -p udp -j DROP

3) Regra equivalente a anterior, mas aceita conexões SSH:

sudo iptables -A INPUT -p tcp --destination-port 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --syn -s 192.168.0.0/255.255.255.0 -j ACCEPT
sudo iptables -A INPUT -p tcp --syn -j DROP
sudo iptables -A INPUT -p udp -j DROP
Sequência de análise das regras
O Iptables processa os comandos em sequência, regra por regra. Se um pacote vem para a porta 22 ele é aceito antes de ir para as demais regras. Se não passou pela primeira regra mas vem de um dos endereços da rede local é imediatamente aceito. Os demais vão para as duas últimas regras e acabam recusados [1].

Todas as regras podem ser eliminadas com o comando:

sudo iptables -F

Configuração do NAT no Linux

O NAT é um mecanismo que possibilita a uma rede local usar apenas um endereço IP público no que concerne ao mundo exterior e utilizar endereços IP privados no que concerne a rede interna.

O NAT no Ubuntu se configura com iptables com os seguintes comandos:

modprobe iptable_nat
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE
  1. O primeiro comando ativa o NAT no módulo iptables.
  2. O segundo comando define a regra para fazer com que todo o tráfego originado em 192.168.1.0/24, e que sai pela interface eth1 deve ser mascarado com o endereço IP dessa interface. Esta regra diz o seguinte: todos os pacotes que passarem (POSTROUTING) por esta máquina com origem de 192.168.1.0/24 e sairem pela interface eth1 serão mascarados, ou seja sairão desta máquina com o endereço de origem como sendo da eth1. O alvo MASQUERADE foi criado para ser usado com links dinâmicos (tipicamente discados ou ADSL), pois os mapeamentos se perdem se o link sair do ar.

Referências

  1. 1,0 1,1 MORIMOTO, C. E. Seridores Linux: Guia prático, Sul Editores, Porto Alegre, 2013.

--Evandro.cantu (discussão) 10h01min de 23 de fevereiro de 2016 (BRT)