View
3
Download
0
Category
Preview:
Citation preview
Iptables
Firewalls,um pouco sobre...
Firewalls
● Realizam a filtragem de pacotes● Baseando-se em:
– endereço/porta de origem;– endereço/porta de destino;– protocolo;
● Efetuam ações:– Aceitar– Rejeitar– Descartar– Registrar
Firewalls
● Realizam o mascaramento (Proxy)● Geralmente incorporado ao Firewall● Mascarar vários IPs privados em um público
Firewalls
● Na maioria dos casos possui três tipos de fluxos básicos de pacotes de rede, sendo:● Direcionados à máquina onde o firewall está
instalado – INPUT● Direcionados da máquina onde o firewall está
instalado à um destino qualquer – OUTPUT● Encaminhados, repassados, pela máquina onde o
firewall está instalado à outras máquinas na rede interna – FORWARD
● Cada fluxo possui suas regras próprias
Vantagens do Firewall Iptables
Desvantagens de outros Firewalls
● Trabalham na camada de aplicação do TCP/IP, gerando● Retardo● Travamento● Além de poderem ser alvos de antivírus e IDS
Firewall Iptables
● Implementado diretamente no kernel● linux-source/include/linux/netfilter_ipv4/ip_tables.h
● Trabalha na camada de Rede do TCP/IP● Mais rápido● Mais eficiente no tratamento de pacotes
IPTables
Tabelas IPTables
● Possui três tabelas
● FILTER
– É a tabela padrão (utilizada mesmo se a opção -t não for fornecida). Contém três cadeias de regras:● INPUT → para pacotes destinado a serviços locais da máquina● FORWARD → para pacotes sendo roteados● OUTPUT → para os pacotes gerados localmente
● NAT
– Esta tabela é consultada quando encontra-se um pacote cria uma nova conexão, que deve ser enviado para outro destino. Contém três cadeias de regras:
● PREROUTING → para alterar pacotes assim que eles chegarem● OUTPUT → para alterar pacotes gerados localmente antes de serem roteados● POSTROUTING → para alterar pacotes momentos antes deles partirem para outros hosts
● MANGLE
– Esta tabela é utilizada para alteração especializada dos pacotes. Possui cinco cadeias de regras:● PREROUTING → para alterar pacotes que acabaram de chegar, antes de serem roteados● OUTPUT → para alterar pacotes gerados localmente antes de serem roteados● INPUT → para pacotes que passam no roteamento● FORWARD → para alterar os pacotes sendo roteados● POSTROUTING → para alterar pacotes momentos antes deles partirem para outros hosts
Visão geral da tabela Filter
Entrada SaídaDecisão deRoteamento
INPUT OUTPUT
FORWARD
Serviços Locais
Destinos dos Pacotes
● Na tabela Filter, pode-se definir regras que determinam se os pacotes serão:● ACCEPT
– Aceitos → Permite que os pacotes passem.
● DROP– Descartados → Não permite a passagem dos pacotes e não avisa à
origem sobre o descarte.
● REJECT– Rejeitados → Rejeita os pacotes e avisam à origem sobre a rejeição
● LOG– Logados (Registrados) → Armazena informações do pacote em
/var/log/syslog (Obs.: em sistemas tipo Debian)
Exemplo em Filter → INPUT
iptables -I INPUT -s <ip confiável> -j ACCEPT
iptables -I INPUT -s <ip suspeito> -j DROP
iptables -I INPUT -s <ip suspeito> -j REJECT
Exemplo em Filter → OUTPUT
iptables -I OUTPUT -p tcp --dport 80 -j DROP
iptables -I OUTPUT -p tcp --dport 25 -j REJECT
iptables -I OUTPUT -p tcp --dport 22 -j ACCEPT
Manipulando IPTables
Manipulação de regras
● Manipulando regras dentro de uma cadeia de regras (chain)● -A → acrescenta nova regra ao fim da lista● -I → acrescenta nova regra ao início da lista● -D pos → remove uma regra da posição pos● -D regra → remove a primeira regra que coincidir● -L → lista as regras na tela
Manipulação de cadeia de regras
● Operações para aplicar em uma cadeia de regras (chain)● -N → Cria uma nova cadeia de regras (chain)● -X → Deleta uma cadeia de regras (chain) vazia● -P → Muda a política padrão de uma cadeia de
regras (chain)● -F → Apaga todas as regras de uma cadeia de
regras (chain)● -Z → Zera os pacotes e os bytes de todas as
regras da cadeia de regras (chain)
Mais opções
● -s → IP ou Rede de Origem do pacoteEx: iptables -I INPUT -s 10.10.0.0/16 -j ACCEPT
● -d → IP ou Rede de Destino do pacoteEx: iptables -I OUTPUT -d 10.10.0.0/16 -j ACCEPT
● -p → Protocolo do pacote● --dport → porta destino
Ex: iptables -I INPUT -p tcp --dport 80 -j ACCEPT
● --sport → porta de origemEx: iptables -D OUTPUT -p tcp --dport
● -i → interface de origem do pacoteEx: iptables -I INPUT -i eth0 -j ACCEPT
● -o → interface de destino do pacoteEx: iptables -O OUTPUT -o eth1 -j ACCEPT
● ! → exclusãoEx: iptables -O OUTPUT ! -s 10.10.0.1 -j ACCEPT
Visão geral da tabela NAT
Entrada SaídaDecisão deRoteamento
INPUTfilter
OUTPUTfilter
FORWARDfilter
Serviços Locais
PREROUTINGnat
POSTROUTINGnat
Exemplo de Mascaramento
● Liberando acesso ao protocolo http na Internet● Internet → interface eth0● Rede Interna → 10.10.0.0/24
# Habilitando o encaminhamento de pacotes
echo 1 > /proc/sys/net/ipv4/ip_forward
# Fornecendo a regra para encaminhamento
iptables -t nat -I POSTROUTING \
-s 10.10.0.0/24 -o eth0 \
-p tcp --dport 80 -j MASQUERADE
Mais informações
http://www.netfilter.org
http://focalinux.cipsga.org.br/guia/avancado/ch-fw-iptables.htm
http://www.zago.eti.br/firewall/dicas-iptables.html
http://www.eriberto.pro.br/iptables
https://help.ubuntu.com/community/IptablesHowTo
Recommended