ÍNDICE

Firewall para uma Rede interna
Firewall com DMZ
Explicações sobre Firewall
Entendimento do Firewal
Firewall Simples para uma rede interna
Repasses da rede interna
Backups

domingo, 12 de setembro de 2010

Firewall - Repasses da rede interna

Até o asssunto anterior estavamos preocupados com os pacotes que entravam se saiam do firewall, agora vamos analisar os pacotes que irão passar pelo firewall.

Um primeiro método seria liberar o acesso a consultas dns e acesso web para toda a rede interna.

#!/bin/bash
# A criação de variáveis de ambiente irá facilitar a troca de alguns parâmetros no firewall.
INT_NET=192.168.0.0/24
INT_IF=eth1
EXT_IF=eth0

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

iptables -P INPUT DROP
iptables -P FORWARD DROP

iptables -A INPUT -m state --state ESTABLISH,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p udp --dport 137:139 -j DROP
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT

# Aceita todos os pacotes que estiverem sendo repassados, independente das interfaces, desde
# que sejam pacotes na qual as conexões já estejam estabelecidas ou relacionadas.
iptables -A FORWARD -m state --state ESTABLISH,RELATED -j ACCEPT

# Aceita repassar os pacotes que tenham como origem a rede interna, estejam entrando na
# interface interna e saindo na interface externa, protocolo sendo UDP com destino a porta
# 53(DNS) e o estado da conexão seja uma nova conexão.
iptables -A FORWARD -s $INT_NET -i $INT_IF -o $EXT_IF -p udp --dport 53 -m state --state NEW -j ACCEPT

# Aceita repassar os pacotes que tenham como origem a rede interna, estejam entrando na
# interface interna e saindo na interface externa, protocolo sendo tcp com destino as portas
# 80(http) e 443(https) e o estado da conexão seja uma nova conexão.
# Note que foi usado o módulo multiport, pois colocamos como destino mais de uma porta.
iptables -A FORWARD -s $INT_NET -i $INT_IF -o $EXT_IF -p tcp -m multiport --dports 80,443 -m state --state NEW -j ACCEPT

iptables -A INPUT -m limit --limit 1/s -j LOG --log-level debug --log-prefix "[FW:INPUT] "
iptables -A FORWARD -m limit --limit 1/s -j LOG --log-level debug --log-prefix "[FW:FORWARD] "

iptables -t nat -A POSTROUTING -o $EXT_IF -j MASQUERADE

Para acesso ftp o controle da conexão deve ser alterado devido ao modo como o o ftp trabalha.

O FTP é um protocolo que dificulta muito a vida de quem implementa regras de filtragem no IPTABLES. O motivo é a forma que o FTP estabelece suas conexões, pois muitas vezes é impossível mapear quais portas serão feitas as conexões.

O Connection Tracking é um módulo do Linux utilizado para acompanhar estas conexões "ajudando" o IPTABLES a saber que um determinado pacote é relacionado a uma conexão já existente.

#!/bin/bash
INT_NET=192.168.0.0/24
INT_IF=eth1
EXT_IF=eth0

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X

iptables -P INPUT DROP
iptables -P FORWARD DROP

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p udp --dport 137:139 -j DROP
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
# Liberação de acesso ao cache de DNS para a rede interna.
iptables -A INPUT -p udp --dport 53 -s $INT_NET -i $INT_IF -m state --state NEW -j ACCEPT

iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

#-------------------------------------------------
# Liberação de acessos via FTP para a rede interna
#
# Primeiramente carregue o módulo de Connection Tracking do FTP
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp

# Libere o acesso a porta 21
iptables -A FORWARD -s $INT_NET -i $INT_IF -o $EXT_IF -p tcp -m multiport --dports 21,80,443 -m state --state NEW -j ACCEPT

iptables -A FORWARD -s $INT_NET -i $INT_IF -o $EXT_IF -p udp --dport 53 -m state --state NEW -j ACCEPT

iptables -A INPUT -m limit --limit 1/s -j LOG --log-level debug --log-prefix "[FW:INPUT] "
iptables -A FORWARD -m limit --limit 1/s -j LOG --log-level debug --log-prefix "[FW:FORWARD] "

iptables -t nat -A POSTROUTING -o $EXT_IF -j MASQUERADE

Nenhum comentário:

Postar um comentário