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 http://yuribraz.com.br +55 62 8428-4554 (Oi) +55 62 9154-9974 (Claro) *#!/bin/bash* clear echo "---------------------===== Firewall =====--------------------" echo "" *# Declaracao das variaveis* IPTABLES="/sbin/iptables" # executavel do iptables LANCARD="eth0" # interface da rede local WANCARD="wlan0" # interface da Internet LANIP="172.16.0.0/16" # endereco de rede da rede local LOCALWANIP="10.0.0.200/32" # endereco ip para wan LOCALLANIP="172.16.0.1/32" # endereco ip para lan LANADMIP="172.16.0.2/32" # ip dos pcs privilegiados da lan *# Limpar regras antigas* $IPTABLES -t filter -F $IPTABLES -t nat -F $IPTABLES -t mangle -F 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 ]" *# Squid* $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* WWWSERVER="172.16.0.2" $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 "" echo "---------------------===== x =====--------------------" echo ""
rc.firewall
Description: Binary data