Search This Blog

Saturday, July 16, 2011

Considerações de Segurança sobre Firewall

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)




#!/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 ""

No comments: