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)
#!/bin/bash
clearecho "---------------------===== Firewall =====--------------------"echo ""
# Declaracao das variaveisIPTABLES="/sbin/iptables" # executavel do iptablesLANCARD="eth0" # interface da rede localWANCARD="wlan0" # interface da InternetLANIP="172.16.0.0/16" # endereco de rede da rede localLOCALWANIP="10.0.0.200/32" # endereco ip para wanLOCALLANIP="172.16.0.1/32" # endereco ip para lanLANADMIP="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 -Fecho "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 DROPecho "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 ACCEPTecho "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 ACCEPTecho "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 ACCEPTecho "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 ACCEPTecho "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 ACCEPTecho "Acesso SSH à Internet ................................ [ OK ]"# Redirecionando tráfego WWW para outro servidor na rede localWWWSERVER="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 ACCEPTecho "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 ACCEPTecho "Sincronização NTP para LAN ........................... [ OK ]"echo ""echo "---------------------===== x =====--------------------"echo ""
No comments:
Post a Comment