310 likes | 399 Views
Redes de computadores II. Firewall Prof. Diovani Milhorim. Firewall. Conceito: Firewall é um sistema projetado para impedir acesso ou tráfego não autorizado em uma rede privada. O sistema pode consistir de software, Hardware ou ambos. Firewall.
E N D
Redes de computadores II Firewall Prof. Diovani Milhorim
Firewall Conceito: Firewall é um sistema projetado para impedir acesso ou tráfego não autorizado em uma rede privada. O sistema pode consistir de software, Hardware ou ambos.
Firewall Em geral firewall são sistemas que implementam regras de filtragem de pacotes impedindo ou restringindo determinados tipos de tráfego, baseando-se em regras fixas ou determinadas em regras estatísticas.
Firewall Objetivos: • Proteger as estações de trabalho de tráfego malicioso externo a rede privada. • Controlar o tráfego de saída da rede interna.
Firewall Quanto a implementação: • Soluções proprietárias . • aplicativos comerciais • Hardware e software integrados. • Soluções de software livre. • filtro de pacotes implementado em sistema operacional livre (unix, linux, etc...)
Firewall Soluções proprietárias. Vantagens: • Facilidade de instalação • Fácil gerenciamento • Atualizações constantes • Hardwares projetados para a aplicação.
Firewall Soluções proprietárias. Desvantagens: • Custo de aquisição • Custo de atualização • Falta de flexibilidade
Firewall Soluções proprietárias.
Firewall Soluções proprietárias.
Firewall Soluções proprietárias.
Firewall Soluções em software livre Implementação de regras de filtragem de pacotes em sistema livre (unix/linux) que opera como gateway de rede. Ferramentas mais usadas: • iptables / ipchains (linux) • Ipfw (unix)
Firewall Soluções em software livre
Firewall Soluções em software livre Iptables: O iptables é um firewall em nível de pacotes e funciona baseado no endereço/porta de origem/destino do pacote, prioridade, host de destino/origem, etc.. Ele funciona através da comparação de regras para determinar se um pacote tem ou não permissão para passar
Firewall Soluções em software livre Iptables: Também pode ser usado para: • Modificar e monitorar o tráfego da rede • Fazer NAT (masquerading, snat, dnat), • Redirecionamento de pacotes, • Marcação de pacotes, • Modificar a prioridade de pacotes que chegam/saem. • Contagem de bytes • Balanceamento de tráfego, • Criar proteções anti-spoofing • Criar proteção contra syn flood • Criar proteção contra DoS, etc...
Firewall Soluções em software livre Iptables: O que são regras? As regras são como comandos passados ao iptables para que ele realize uma determinada ação (como bloquear ou deixar passar um pacote) de acordo com o endereço/porta de origem/destino, interface de origem/destino, etc. As regras são armazenadas dentro dos chains e processadas na ordem que são inseridas. As regras são armazenadas no kernel, o que significa que quando o computador for reiniciado tudo o que fez será perdido. Por este motivo elas deverão ser gravadas em um arquivo para serem carregadas a cada inicialização.
Firewall Soluções em software livre Exemplo de regra iptables: Iptables –A INPUT –-dport 80 –j DROP
Firewall Soluções em software livre Um pacote passa por várias etapas dentro do kernel do Linux, dependendo se ele for roteado pela máquina, destinado a ela ou se este pacote foi, na verdade, gerado pelo ip da máquina. O netfilter introduziu “chains“ (ganchos) , pontos ao longo do ciclo de vida de um pacote, onde o mesmo pode ser avaliado por regras de firewall. A figura 1 destaca estes pontos.
Firewall Soluções em software livre Iptables: chains
Firewall Soluções em software livre Iptables: O que são chains? Os Chains são locais onde as regras do firewall definidas pelo usuário são armazenadas para operação do firewall. Existem dois tipos de chains: os embutidos (como os chains INPUT, OUTPUT e FORWARD) e os criados pelo usuário. Os nomes dos chains embutidos devem ser especificados sempre em maiúsculas (note que os nomes dos chains são case-sensitive)
Firewall Soluções em software livre Iptables: Tabelas Os conjuntos de chains são necessariamente agrupados em tabelas. Uma tabela praticamente define o seu poder, o que pode ou o que não pode realizar com o pacote e uma tabela possui vários conjuntos de regras. Ao todo são três tabelas principais existentes no iptables: • filter; • nat; • mangle.
Firewall Soluções em software livre Iptables Existem três tipos de tabelas pré-definidas. • Filter • Nat • mangle
Firewall Soluções em software livre Iptables Filter - Esta é a tabela padrão, contém 3 chains padrões: • INPUT - Consultado para dados que chegam a máquina • OUTPUT - Consultado para dados que saem da máquina • FORWARD - Consultado para dados que são redirecionados para outra interface de rede ou outra máquina. Os chains INPUT e OUTPUT somente são atravessados por conexões indo ou originando de localhost. OBS: Para conexões locais, somente os chains INPUT e OUTPUT são consultados na tabela filter.
Firewall Soluções em software livre Iptables Nat - Usada para dados que gera outra conexão (masquerading, source nat, destination nat, port forwarding, proxy transparente são alguns exemplos). Possui 3 chains padrões: PREROUTING - Consultado quando os pacotes precisam ser modificados logo que chegam. É o chain ideal para realização de DNAT e redirecionamento de portas (Fazendo DNAT, Seção 10.4.4). OUTPUT - Consultado quando os pacotes gerados localmente precisam ser modificados antes de serem roteados. Este chain somente é consultado para conexões que se originam de IPs de interfaces locais. POSTROUTING - Consultado quando os pacotes precisam ser modificados após o tratamento de roteamento. É o chain ideal para realização de SNAT e IP Masquerading
Firewall Soluções em software livre Iptables Mangle - Utilizada para alterações especiais de pacotes -5 tabelas: • INPUT - Consultado quando os pacotes precisam ser modificados antes de serem enviados para o chain INPUT da tabela filter. • FORWARD - Consultado quando os pacotes precisam ser modificados antes de serem enviados para o chain FORWARD da tabela filter. • PREROUTING - Consultado quando os pacotes precisam ser modificados antes de ser enviados para o chain PREROUTING da tabela nat. • POSTROUTING - Consultado quando os pacotes precisam ser modificados antes de serem enviados para o chain POSTROUTING da tabela nat. • OUTPUT - Consultado quando os pacotes precisam ser modificados antes de serem enviados para o chain OUTPUT da tabela nat.
Firewall Soluções em software livre Iptables Mangle - Utilizada para alterações especiais de pacotes. Exemplos: • Modificar o bit TOS do protocolo tcp. • Marcar pacotes para roteamento
Firewall Soluções em software livre Iptables O acesso as regras é feita de forma hierárquica de modo que regras que se encontram no topo da tabela se sobrepõem a regras que se encontram abaixo dela. O iptables sempre executará a acão que uma regra impõe a menos que uma regra anterior (acima na tabela) a impeça.
Firewall Soluções em software livre Iptables Exemplo de hierarquia de regras Iptables –A INPUT –dport 80 –j ACCEPT Iptables –A INPUT –dport 80 –j DROP Neste caso o pacote para a porta 80 que tem destino localhost será aceito mesmo que uma regra de prioridade menor peça o contrário
Firewall Soluções em software livre Iptables Manipulando regras. -A: adiciona novas regras no final do chain. -L: lista as regras de uma chain -D:Remove uma regra -I: Insere novas regras no começo da tabela -P: muda política padrão (accept/drop) -F: limpa as regras de uma chain ou de todas elas.
Firewall Soluções em software livre Iptables Manipulando regras. Flags importantes: -d : destino -s : source --dport : porta de destino --sport: porta de source -p : protocolo -I: interface de acesso
Firewall Soluções em software livre Iptables Manipulando regras. ALVOS: • ACCEPT: aceita o pacotte • DROP: descarta o pacote • DENY: não aceita o pacote • LOG: grava log do fluxo do pacote
Firewall Soluções em software livre Iptables Exemplos: iptables -t nat -A POSTROUTING -s 192.168.1.2/32 -o ppp0 -j MASQUERADE iptables -t nat -A PREROUTING -s 200.200.201.4 -i eth0 -j DNAT –to 192.168.1.2 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 81 iptables -t mangle -A OUTPUT -o ppp0 -p tcp --dport 20 -j TOS --set-tos 8 iptables –A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s –j ACCEPT iptables -t filter -A syn-chain -p tcp --syn -m limit --limit 2/s -j ACCEPT