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 ""

Attachment: rc.firewall
Description: Binary data

Responder a