Pessoal,
Estou fazendo um firewall, com propósitos de estudo, na minha rede doméstica. Acho que está ficando legal, mas eu gostaria que vocês pudessem fazer algumas considerações de segurança a respeito do mesmo, caso seja possível.
É um servidor simples, com duas NICs. Os serviços rodando no servidor são: Firewall, Proxy e NTP. E tenho um servidor WWW na minha LAN. E eu ativei o net.ipv4.ip_forward no /etc/sysctl.conf
Um abraço,
--
Yuri Rodrigues Braz
ITIL V3 Foundation Qualification in IT Service Management
Junior Level Linux Professional (LPIC-1)
2048R/2D727C88: 0181 8965 908D 3064 8753 F9AC 081A 0695 2D72 7C88
+55 62 8428-4554 (Oi)
+55 62 9154-9974 (Claro)
echo "---------------------===== Firewall =====--------------------"
# Declaracao das variaveis
IPTABLES="/sbin/iptables" # executavel do iptables
LANCARD="eth0" # interface da rede local
WANCARD="wlan0" # interface da Internet
echo "Limpeza de regras antigas ............................ [ OK ]"
# Definição de Policiamento
$IPTABLES -t filter -P FORWARD DROP
$IPTABLES -t filter -P INPUT DROP
$IPTABLES -t filter -P OUTPUT DROP
echo "Definição da Política Padrão (DROP) .................. [ OK ]"
# Permitindo o Computador Local acessar a Internet
$IPTABLES -A OUTPUT -o $WANCARD -s $LOCALWANIP -p tcp --dport 80 -j ACCEPT
$IPTABLES -A OUTPUT -o $WANCARD -s $LOCALWANIP -p udp --dport 53 -j ACCEPT
$IPTABLES -A OUTPUT -o $WANCARD -s $LOCALWANIP -p tcp --dport 443 -j ACCEPT
$IPTABLES -A OUTPUT -o $WANCARD -s $LOCALWANIP -p tcp --dport 20 -j ACCEPT
$IPTABLES -A OUTPUT -o $WANCARD -s $LOCALWANIP -p tcp --dport 21 -j ACCEPT
$IPTABLES -A OUTPUT -o $WANCARD -s $LOCALWANIP -p udp --dport 123 -j ACCEPT
# Política para pacotes ICMP
$IPTABLES -A OUTPUT -s $LOCALWANIP -p icmp -j ACCEPT
$IPTABLES -A OUTPUT -s $LOCALLANIP -p icmp -j ACCEPT
$IPTABLES -A OUTPUT -s localhost -p icmp -j ACCEPT
$IPTABLES -A INPUT -p icmp -m limit --limit 2/s -j ACCEPT
echo "Política para Pacotes ICMP ........................... [ OK ]"
# Ativação do Filtro de Estado de Sessão
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "Ativação do Filtro de Estado de Sessão ............... [ OK ]"
# Compartilhar a Internet
#$IPTABLES -A INPUT -i $LANCARD -s $LANIP -p tcp --dport 80 -j ACCEPT
#$IPTABLES -A FORWARD -i $LANCARD -p tcp --dport 80 -j ACCEPT
#$IPTABLES -t nat -A POSTROUTING -o $WANCARD -p tcp --dport 80 -j MASQUERADE
#$IPTABLES -A INPUT -i $LANCARD -s $LANIP -p udp --dport 53 -j ACCEPT
#$IPTABLES -A FORWARD -i $LANCARD -p udp --dport 53 -j ACCEPT
#$IPTABLES -t nat -A POSTROUTING -o $WANCARD -p udp --dport 53 -j MASQUERADE
#$IPTABLES -A INPUT -i $LANCARD -s $LANIP -p tcp --dport 443 -j ACCEPT
#$IPTABLES -A FORWARD -i $LANCARD -p tcp --dport 443 -j ACCEPT
#$IPTABLES -t nat -A POSTROUTING -o $WANCARD -p tcp --dport 443 -j MASQUERADE
#echo "Compartilhamento da Internet ......................... [ OK ]"
$IPTABLES -A INPUT -i $LANCARD -s $LANIP -p tcp --dport 3128 -j ACCEPT
$IPTABLES -A FORWARD -i $LANCARD -o $WANCARD -s $LANIP -p tcp --dport 3128 -j ACCEPT
$IPTABLES -A INPUT -s 127.0.0.1 -p tcp --dport 3128 -j ACCEPT
$IPTABLES -A OUTPUT -s 127.0.0.1 -p tcp --dport 3128 -j ACCEPT
echo "Regras para Servidor Proxy Squid ..................... [ OK ]"
# Permitindo acesso SSH à rede Interna
$IPTABLES -A INPUT -i $LANCARD -s $LANADMIP -d $LOCALLANIP -p tcp --dport 22 -j LOG --log-prefix "SSH (lan): "
$IPTABLES -A INPUT -i $LANCARD -s $LANADMIP -d $LOCALLANIP -p tcp --dport 22 -j ACCEPT
echo "Acesso SSH à Rede Interna ............................ [ OK ]"
# Permitindo acesso SSH à Internet
# Nota: isso pode ser perigoso, melhor adicionar o parametro -s e definir
# os ips de origem que podem acessar o servidor ssh remotamente.
$IPTABLES -A INPUT -i $WANCARD -d $LOCALWANIP -p tcp --dport 22 -j LOG --log-prefix "SSH (wan): "
$IPTABLES -A INPUT -i $WANCARD -d $LOCALWANIP -p tcp --dport 22 -j ACCEPT
echo "Acesso SSH à Internet ................................ [ OK ]"
# Redirecionando tráfego WWW para outro servidor na rede local
$IPTABLES -A INPUT -i $WANCARD -d $LOCALWANIP -p tcp --dport 80 -j LOG --log-prefix "WWW (wan): "
$IPTABLES -A INPUT -i $WANCARD -d $LOCALWANIP -p tcp --dport 80 -j ACCEPT
$IPTABLES -t nat -A PREROUTING -i $WANCARD -d $LOCALWANIP -p tcp --dport 80 -j DNAT --to $WWWSERVER
$IPTABLES -A FORWARD -o $LANCARD -d $WWWSERVER -p tcp --dport 80 -j ACCEPT
echo "Tráfego WWW para outro servidor na LAN ............... [ OK ]"
# Sincronizacao NTP para a LAN
$IPTABLES -A INPUT -i $LANCARD -s $LANIP -d $LOCALLANIP -p udp --dport 123 -j LOG --log-prefix "NTP (lan): "
$IPTABLES -A INPUT -i $LANCARD -s $LANIP -d $LOCALLANIP -p udp --dport 123 -j ACCEPT
echo "Sincronização NTP para LAN ........................... [ OK ]"
echo "---------------------===== x =====--------------------"