Campus - Cachoeiro Curso Técnico de Informática Firewall Iptables Professor: João Paulo de Brito...

22
Campus - Cachoeiro Curso Técnico de Informática Firewall Firewall Iptables Iptables Professor: João Paulo de Brito Gonçalves

Transcript of Campus - Cachoeiro Curso Técnico de Informática Firewall Iptables Professor: João Paulo de Brito...

Page 1: Campus - Cachoeiro Curso Técnico de Informática Firewall Iptables Professor: João Paulo de Brito Gonçalves.

Campus - CachoeiroCurso Técnico de

Informática

Firewall Firewall IptablesIptables

Professor: João Paulo de Brito Gonçalves

Page 2: Campus - Cachoeiro Curso Técnico de Informática Firewall Iptables Professor: João Paulo de Brito Gonçalves.

• Os firewalls existem no Linux desde o kernel 1.1, Os firewalls existem no Linux desde o kernel 1.1, com o ipfw, originário do BSD. com o ipfw, originário do BSD. • Esse filtro era userspace, ou seja, rodava como Esse filtro era userspace, ou seja, rodava como um programa comum no sistema, similarmente ao um programa comum no sistema, similarmente ao BIND (servidor de nomes). BIND (servidor de nomes). • Com o kernel 2.0 veio o ipfwadm, que ainda era Com o kernel 2.0 veio o ipfwadm, que ainda era uma ferramenta userspace e controlava as regras uma ferramenta userspace e controlava as regras de filtragem do kernel. de filtragem do kernel. •Na versão 2.2 do kernel, veio o ipchains (ainda Na versão 2.2 do kernel, veio o ipchains (ainda presente em algumas distribuições) e em 1999, presente em algumas distribuições) e em 1999, veio o iptables 2, presente a partir do kernel veio o iptables 2, presente a partir do kernel 2.3.15.2.3.15.

Iptables -Introdução

Page 3: Campus - Cachoeiro Curso Técnico de Informática Firewall Iptables Professor: João Paulo de Brito Gonçalves.

O iptables é um firewall nativo do Linux O iptables é um firewall nativo do Linux e que faz parte do seu kernel e por isto e que faz parte do seu kernel e por isto tem um desempenho melhor que tem um desempenho melhor que firewalls instalados como aplicações. firewalls instalados como aplicações. Com isso, ele é bastante seguro e Com isso, ele é bastante seguro e rápido.rápido.

Iptables -Introdução

Page 4: Campus - Cachoeiro Curso Técnico de Informática Firewall Iptables Professor: João Paulo de Brito Gonçalves.

No iptables, existem tabelas de filtragem (chains), e três delas são básicas e não podem ser apagadas: INPUT, OUTPUT e FORWARD.

A chain INPUT trata dos pacotes de entrada, aqueles que chegam da rede.

A chain OUTPUT trata dos pacotes de saída, aqueles que vão para a rede.

E finalmente a chain FORWARD trata do encaminhamento de pacotes, ou seja, roteamento.

Cadeias e políticas-padrão

Page 5: Campus - Cachoeiro Curso Técnico de Informática Firewall Iptables Professor: João Paulo de Brito Gonçalves.

Cadeias e políticas-padrão

Page 6: Campus - Cachoeiro Curso Técnico de Informática Firewall Iptables Professor: João Paulo de Brito Gonçalves.

Roteador

Comandos do Iptables

iptables -A adiciona uma nova regra ao fim da lista de regras

iptables -P <nome-da-cadeia> <alvo> muda a política padrão de uma cadeia, de forma que todo pacote desta cadeia ficará sujeito a esta política, caso não exista nenhuma regra anterior que se aplique a mesma.

iptables -D apaga uma regra específica da lista iptables -L lista as regras existentes na lista. iptables -F remove todas as entradas

adicionadas na lista de regras do iptables

Page 7: Campus - Cachoeiro Curso Técnico de Informática Firewall Iptables Professor: João Paulo de Brito Gonçalves.

Roteador

Alvos das regras

iptables -I Insere uma nova regra ao início da lista de regras

-j – define o alvo do pacote caso o mesmo se encaixe em uma regra. As principais ações são ACCEPT, DROP, REJECT.

ACCEPT aceita o pacote REJECT rejeita educadamente o pacote, enviando um

pacote de resposta ao emissor. DROP o pacote simplesmente é descartado, sem aviso. LOG Permite fazer log dos pacotes que se encaixamna regra.

Page 8: Campus - Cachoeiro Curso Técnico de Informática Firewall Iptables Professor: João Paulo de Brito Gonçalves.

Parâmetros para a filtragem de pacotes

-p – especifica o protocolo aplicado à regra. Se enquadra aos protocolos da camada de transporte, como tcp, udp e icmp

Ex: iptables - A INPUT –p tcp –j ACCEPT

Page 9: Campus - Cachoeiro Curso Técnico de Informática Firewall Iptables Professor: João Paulo de Brito Gonçalves.

Parâmetros para a filtragem de pacotes

-s – especifica a origem (source) do pacote ao qual a regra deve ser aplicada. A origem pode ser um host ou uma rede. Nesta opção geralmente utilizamos o IP seguido de sua sub-rede:

Ex: iptables –A INPUT –s 172.16.53.1 –j DROP iptables –A INPUT –s 172.16.53.1 –j ACCEPT Este comando descarta todo pacote de

entrada vindo da origem 172.16.53.1 O segundo comando aceita todo pacote de

entrada vindo da origem 172.16.53.1

Page 10: Campus - Cachoeiro Curso Técnico de Informática Firewall Iptables Professor: João Paulo de Brito Gonçalves.

Parâmetros para a filtragem de pacotes

-d – especifica o destino do pacote (destination) ao qual a regra deve ser aplicada. Sua utilização se dá da mesma maneira que a ação –s.

Ex: iptables –A OUTPUT –d 172.16.53.1 –j DROP

iptables –A OUTPUT –d 172.16.53.1 –j ACCEPT Este comando descarta todo pacote de saída

com destino à máquina 172.16.53.1 O segundo comando aceita todo pacote de

saída com destino à máquina 172.16.53.1

Page 11: Campus - Cachoeiro Curso Técnico de Informática Firewall Iptables Professor: João Paulo de Brito Gonçalves.

Parâmetros para a filtragem de pacotes

-i – especifica a interface de entrada a ser utilizada e como um Firewall possui mais de uma interface esta regra acaba sendo muito importante para distinguir a qual interface de rede o filtro deve ser aplicado.

Ex: iptables –A INPUT –i eth0 –j DROP O comando permite que todo pacote que entra

pela interface eth0 seja selecionado para ser descartado pelas regras do firewall.

Page 12: Campus - Cachoeiro Curso Técnico de Informática Firewall Iptables Professor: João Paulo de Brito Gonçalves.

Parâmetros para a filtragem de pacotes

-o – especifica a interface de saída a ser utilizada e se aplica da mesma forma que a regra –i, mas este parâmetro é menos usado, pois normalmente nos preocupamos em impedir que o firewall aceite conexões em determinadas portas, ao invés de tentar interceptar as respostas.

Ex: iptables –A FORWARD –o eth0 –j DROP O comando permite que todo pacote que sai

pela interface eth0 seja selecionado para ser descartado pelas regras do firewall.

Page 13: Campus - Cachoeiro Curso Técnico de Informática Firewall Iptables Professor: João Paulo de Brito Gonçalves.

Parâmetros para a filtragem de pacotes

--sport – porta de origem (source port). Com esta regra é possível aplicar filtros com base na porta de origem do pacote.

Ex: iptables –A INPUT –p tcp –-sport 22 –j DROP O comando permite que todo pacote de

entrada usando o protocolo TCP e com origem na porta 22 seja descartado.

Page 14: Campus - Cachoeiro Curso Técnico de Informática Firewall Iptables Professor: João Paulo de Brito Gonçalves.

Parâmetros para a filtragem de pacotes

--dport – porta de destino (destination port) especifica a porta de destino do pacote e funciona de forma similar à regra sport.

iptables –A OUTPUT –p tcp –-dport 22 –j DROP O comando permite que todo pacote de saída

usando o protocolo TCP e com destino na porta 22 seja descartado.

Page 15: Campus - Cachoeiro Curso Técnico de Informática Firewall Iptables Professor: João Paulo de Brito Gonçalves.

Parâmetros para a filtragem de pacotes

-m mac --mac-source – é a regra que permite especificar endereços MAC dentro de regras do iptables. Ele é uma forma de dificultar o uso de endereços IP falseados para ganhar acesso ao servidor, pois permite relacionar o IP ao endereço MAC da placa instalada. Não é 100% eficaz pois o endereço MAC pode ser trocado via ifconfig e ele não é válido para a camada de rede, ou seja, quando sai da rede local, ele é descartado.

iptables -A INPUT –p tcp --dport 22 –m mac --mac-source 00:1B:24:46:29:88 –j DROP

Page 16: Campus - Cachoeiro Curso Técnico de Informática Firewall Iptables Professor: João Paulo de Brito Gonçalves.

Parâmetros para a filtragem de pacotes

Comando faz com que qualquer pacote de entrada com destino na porta 22 advindo da máquina que possua MAC 00:1B:24:46:29:88 seja descartado.

iptables -A INPUT –p tcp --dport 22 –m mac --mac-source 00:1B:24:46:29:88 –j REJECT

Comando faz com que qualquer pacote de entrada com destino na porta 22 advindo da máquina que possua MAC 00:1B:24:46:29:88 seja rejeitado.

Page 17: Campus - Cachoeiro Curso Técnico de Informática Firewall Iptables Professor: João Paulo de Brito Gonçalves.

Parâmetros para a filtragem de pacotes

multiport - com o modulo multiport é possível que especifiquemos múltiplas portas a serem afetadas pela regra, sob o limite máximo de 15.

EX: iptables –A INPUT –p tcp –i eth0 –m multiport –-dport 80,25,53,110 –j DROP

Este comando indica em uma só regra por via de multiport que o firewall descartará (-J DROP) qualquer pacote que entre pela interface eth0 (-i eth0) destinado às portas 80,25, 53, 110.

Page 18: Campus - Cachoeiro Curso Técnico de Informática Firewall Iptables Professor: João Paulo de Brito Gonçalves.

Bloqueando domínios

É possível ainda permitir ou bloquear com base no domínio, tanto para entrada como para saída. Isto permite bloquear sites e programas diretamente a partir do firewall, sem precisar instalar um servidor Squid e configurá-lo.

Iptables –A OUTPUT –d www.orkut.com –j DROP O comando impede que pacotes de saída destinados ao domínio sejam

enviados, ou seja, impede que o domínio seja acessado a partir da própria máquina local.

Originalmente o iptables sabia trabalhar apenas com endereços IP. A possibilidade de criar regras baseadas em domínios são um recurso um pouco mais recente, onde o firewall faz um lookup no domínio, para saber qual o IP atual.

 

Page 19: Campus - Cachoeiro Curso Técnico de Informática Firewall Iptables Professor: João Paulo de Brito Gonçalves.

Salvando as regras criadas no Firewall

Toda regra criada no Iptables fica gravada em memória RAM, sendo posteriormente apagada quando o sistema é ligado ou reiniciado.

Para que o administrador de redes não seja obrigado a ter que refazer todas as regras de firewall sempre que o sistema é ligado, existe um comando do iptables que possibilita que salvemos as regras criadas em um arquivo, que depois pode ser usado para restaurar as regras no firewall.

Para então salvar as regras criadas em um arquivo, devemos usar o comando:

iptables-save > nome_do_arquivo

Page 20: Campus - Cachoeiro Curso Técnico de Informática Firewall Iptables Professor: João Paulo de Brito Gonçalves.

Salvando as regras criadas no Firewall

Após isto, o arquivo criado terá todas as regras do firewall criadas.

Em uma próxima ocasião quando o sistema for reiniciado, as regras podem ser restauradas através do comando

iptables-restore < nome_do_arquivo Este comando acessará o arquivo e colocará

em memória todas as regras que estavam gravadas no arquivo.

Page 21: Campus - Cachoeiro Curso Técnico de Informática Firewall Iptables Professor: João Paulo de Brito Gonçalves.

Roteamento no Linux

O roteamento em um sistema Linux é nativo do kernel, ou seja, ao iniciar o serviço de rede, o kernel já ativou o roteamento de pacotes. O serviço roda inicialmente de uma forma local, roteando apenas os pacotes da própria máquina. Para que o kernel possa rotear pacotes de outras máquinas é preciso dizer que ele deve fazer isso, que é feito inserindo o valor 1 no arquivo /proc/sys/net/ipv4/ip_forward.

Page 22: Campus - Cachoeiro Curso Técnico de Informática Firewall Iptables Professor: João Paulo de Brito Gonçalves.

Verificando o valor de ip_forward# cat /proc/sys/net/ipv4/ip_forward Mudando o valor de ip_forward# echo 1 > /proc/sys/net/ipv4/ip_forward Verificando o novo valor de ip_forward# cat /proc/sys/net/ipv4/ip_forward

Também é possível fazer isso, e de uma forma mais adequada, editando-se o arquivo /etc/sysctl.conf.

Roteamento no Linux