Marcelo,

Dê uma olhada no firewall que eu usava no meu pc, pois deve te ajudar. Agora
uso iptables diretamente no DD-WRT do roteador.

#!/bin/sh
# Exemplos de configuração de firewall

# São assumidos os módulos usados por esta configuração do firewall:

# ipt_filter
# ipt_nat
# ipt_conntrack
# ipt_mangle
# ipt_TOS
# ipt_MASQUERADE
# ipt_LOG

##### Definição de Policiamento #####
# Tabela filter
iptables -t filter -P INPUT DROP
iptables -t filter -P OUTPUT ACCEPT
iptables -t filter -P FORWARD DROP
# Tabela nat
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING DROP
# Tabela mangle
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT


##### Proteção contra IP Spoofing #####
for i in /proc/sys/net/ipv4/conf/*/rp_filter; do
 echo 1 >$i
done

##### Ativamos o redirecionamento de pacotes (requerido para NAT) #####
echo "1" >/proc/sys/net/ipv4/ip_forward

# O iptables define automaticamente o número máximo de conexões simultâneas
# com base na memória do sistema. Para 32MB = 2048, 64MB = 4096, 128MB =
8192,
# sendo que são usados 350 bytes de memória residente para controlar
# cada conexão.
# Quando este limite é excedido a seguinte mensagem é mostrada:
#  "ip_conntrack: maximum limit of XXX entries exceed"
#
# Como temos uma rede simples, vamos abaixar este limite. Por outro lado
isto
# criará uma certa limitação de tráfego para evitar a sobrecarga do
servidor.
echo "2048" > /proc/sys/net/ipv4/ip_conntrack_max


###############################################################
#                      Tabela filter                          #
###############################################################

##### Chain INPUT #####
# Criamos um chain que será usado para tratar o tráfego vindo da Internet e
iptables -N ppp-input

# Aceita todo o tráfego vindo do loopback e indo pro loopback
iptables -A INPUT -i lo -j ACCEPT
# Todo tráfego vindo da rede interna também é aceito
iptables -A INPUT -s 192.168.1.0/24 -i eth0 -j ACCEPT

# Conexões vindas da interface ppp0 são tratadas pelo chain ppp-input
iptables -A INPUT -i ppp+ -j ppp-input

# Qualquer outra conexão desconhecida é imediatamente registrada e derrubada
iptables -A INPUT -j LOG --log-prefix "FIREWALL: INPUT "
iptables -A INPUT -j DROP


##### Chain FORWARD ####
# Permite redirecionamento de conexões entre as interfaces locais
# especificadas abaixo. Qualquer tráfego vindo/indo para outras
# interfaces será bloqueado neste passo
iptables -A FORWARD -d 192.168.1.0/24 -i ppp+ -o eth0 -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -i eth0 -o ppp+ -j ACCEPT
iptables -A FORWARD -j LOG --log-prefix "FIREWALL: FORWARD "
iptables -A FORWARD -j DROP


##### Chain ppp-input ####
# Aceitamos todas as mensagens icmp vindas de ppp0 com certa limitação
iptables -A ppp-input -p icmp -m limit --limit 2/s -j ACCEPT

# Primeiro aceitamos o tráfego vindo da Internet para o serviço www (porta
80)
iptables -A ppp-input -p tcp --dport 80 -j ACCEPT

# A tentativa de acesso externo a estes serviços serão registrados no syslog
# do sistema e serão bloqueados pela última regra abaixo.
iptables -A ppp-input -p tcp --dport 21 -j LOG --log-prefix "FIREWALL: ftp "
iptables -A ppp-input -p tcp --dport 25 -j LOG --log-prefix "FIREWALL: smtp
"
iptables -A ppp-input -p udp --dport 53 -j LOG --log-prefix "FIREWALL: dns "
iptables -A ppp-input -p tcp --dport 110 -j LOG --log-prefix "FIREWALL: pop3
"
iptables -A ppp-input -p tcp --dport 113 -j LOG --log-prefix "FIREWALL:
identd "
iptables -A ppp-input -p udp --dport 111 -j LOG --log-prefix "FIREWALL: rpc"
iptables -A ppp-input -p tcp --dport 111 -j LOG --log-prefix "FIREWALL: rpc"
iptables -A ppp-input -p tcp --dport 137:139 -j LOG --log-prefix "FIREWALL:
samba "
iptables -A ppp-input -p udp --dport 137:139 -j LOG --log-prefix "FIREWALL:
samba "
# Bloqueia qualquer tentativa de nova conexão de fora para esta máquina
iptables -A ppp-input -m state --state ! ESTABLISHED,RELATED -j LOG
--log-prefix "FIREWALL: ppp-in "
iptables -A ppp-input -m state --state ! ESTABLISHED,RELATED -j DROP
# Qualquer outro tipo de tráfego é aceito
iptables -A ppp-input -j ACCEPT


#######################################################
#                   Tabela nat                        #
#######################################################

##### Chain POSTROUTING #####
# Permite qualquer conexão vinda com destino a lo e rede local para eth0
iptables -t nat -A POSTROUTING -o lo -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j ACCEPT

# Não queremos que usuários tenham acesso direto a www e smtp da rede
externa, o
# squid e smtpd do firewall devem ser obrigatoriamente usados. Também
registramos
# as tentativas para monitorarmos qual máquina está tentando conectar-se
diretamente.
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp+ -p tcp --dport 80
-j LOG --log-prefix "FIREWALL: SNAT-www "
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp+ -p tcp --dport 25
-j LOG --log-prefix "FIREWALL: SNAT-smtp "
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp+ -p tcp --dport 25
-j DROP
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp+ -p tcp --dport 80
-j DROP
# É feito masquerading dos outros serviços da rede interna indo para a
interface
# ppp0
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp+ -j MASQUERADE

# Qualquer outra origem de tráfego desconhecida indo para eth0 (conexões
vindas
# de ppp+) são bloqueadas aqui
iptables -t nat -A POSTROUTING -o eth0 -d 192.168.1.0/24 -j LOG --log-prefix
"FIREWALL: SNAT unknown"
iptables -t nat -A POSTROUTING -o eth0 -d 192.168.1.0/24 -j DROP
# Quando iniciamos uma conexão ppp, obtermos um endereço classe A (10.x.x.x)
e após
# estabelecida a conexão real, este endereço é modificado. O tráfego indo
para
# a interface ppp não deverá ser bloqueado. Os bloqueios serão feitos no
# chain INPUT da tabela filter
iptables -t nat -A POSTROUTING -o ppp+ -j ACCEPT

# Registra e bloqueia qualquer outro tipo de tráfego desconhecido
iptables -t nat -A POSTROUTING -j LOG --log-prefix "FIREWALL: SNAT "
iptables -t nat -A POSTROUTING -j DROP


###############################################
#                Tabela mangle                #
###############################################
##### Chain OUTPUT #####
# Define mínimo de espera para os serviços ftp, telnet, irc e DNS, isto
# dará uma melhor sensação de conexão em tempo real e diminuirá o tempo
# de espera para conexões que requerem resolução de nomes.
iptables -t mangle -A OUTPUT -o ppp+ -p tcp --dport 21 -j TOS --set-tos 0x10
iptables -t mangle -A OUTPUT -o ppp+ -p tcp --dport 23 -j TOS --set-tos 0x10
iptables -t mangle -A OUTPUT -o ppp+ -p tcp --dport 6665:6668 -j TOS
--set-tos 0x10
iptables -t mangle -A OUTPUT -o ppp+ -p udp --dport 53 -j TOS --set-tos 0x10


On Fri, Jul 4, 2008 at 11:52 AM, Marcelo Garcia / Supermar <
[EMAIL PROTECTED]> wrote:

> Pessoal,
>
> O ultimo firewall q escrevi foi em 2003. Agora to recomecando do zero em um
> novo servidor. Por hora ele tem squid transparente, mas vai ter apache e
> email. Qdo ativo o firewall, o repasse de email esta ok, porem NAO navego,
> nem consigo acessar o ssh. Lembro que tem q abrir portas de retorno, mas
> nao
> sei como faz. Alguem pode olhar o script abaixo,e me dizer aonde estou
> pegado ?
>
> Obrigado
>
> Marcelo
>
>
>
> ext='eth0'
> int='eth1'
> ipint='192.168.0.1'
> redeint='192.168.0.0/16'
> ipext='200.200.233.200'
> redeext='200.200.233.0/255.255.255.192'
> internet='0/0'
> modprobe iptable_nat
> ####################3#Politicas padroes
> iptables  -P INPUT  DROP
> iptables  -P FORWARD DROP
> #iptables  -P OUTPUT  DROP
> echo 1 > /proc/sys/net/ipv4/ip_forward
> #
> # Habilita o NAT + Proxy Transparente
> #
> iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -o eth0 -j SNAT
> --to-source
> 200.200.233.200
> iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j
> REDIRECT --to-port 3128
> ##################### Libera Ping rede interna
> iptables -A OUTPUT  -p icmp -s $ipext    -d $redeext  --icmp-type 8 -j
> ACCEPT
> iptables -A INPUT   -p icmp -s $ipext    -d $redeext  --icmp-type 8 -j
> ACCEPT
> iptables -A OUTPUT  -p icmp -s $ipext    -d $redeext  --icmp-type 0 -j
> ACCEPT
> iptables -A INPUT   -p icmp -s $ipext    -d $redeext  --icmp-type 0 -j
> ACCEPT
> ##################### Libera DNS, HTTP, ICMP GW-Internet, Proxy
> iptables -A OUTPUT  -p udp  -s $ipext    -d $internet --dport 53    -j
> ACCEPT
> iptables -A INPUT   -p udp  -s $internet -d $ipext    --sport 53    -j
> ACCEPT
> iptables -A OUTPUT  -p icmp -s $ipext    -d $internet --icmp-type 8 -j
> ACCEPT
> iptables -A INPUT   -p icmp -s $internet -d $ipext    --icmp-type 0 -j
> ACCEPT
> iptables -A OUTPUT  -p tcp  -s $ipint    -d $internet --dport 80    -j
> ACCEPT
> iptables -A INPUT   -p tcp  -s $internet -d $ipint    --sport 80    -j
> ACCEPT
> iptables -A OUTPUT  -p tcp  -s $ipint    -d $redeint  --dport 3128  -j
> ACCEPT
> iptables -A INPUT   -p tcp  -s $redeint  -d $ipint    --sport 3128  -j
> ACCEPT
> ##################### Libera DNS / PING / HTTP / POP / SMTP p/ rede interna
> iptables -A FORWARD -p udp  -s $redeint  -d $internet --dport 53    -j
> ACCEPT
> iptables -A FORWARD -p udp  -s $internet -d $redeint  --sport 53    -j
> ACCEPT
> iptables -A FORWARD -p icmp -s $redeint  -d $internet --icmp-type 8 -j
> ACCEPT
> iptables -A FORWARD -p icmp -s $internet -d $redeint  --icmp-type 0 -j
> ACCEPT
> iptables -A FORWARD -p tcp  -s $redeint  -d $internet --dport 80    -j
> ACCEPT
> iptables -A FORWARD -p tcp  -s $internet -d $redeint  --sport 80    -j
> ACCEPT
> iptables -A FORWARD -p tcp  -s $redeint  -d $internet --dport 25    -j
> ACCEPT
> iptables -A FORWARD -p tcp  -s $internet -d $redeint  --sport 25    -j
> ACCEPT
> iptables -A FORWARD -p tcp  -s $redeint  -d $internet --dport 110   -j
> ACCEPT
> iptables -A FORWARD -p tcp  -s $internet -d $redeint  --sport 110   -j
> ACCEPT
> ##################### Libera SSH p/ rede interna
> iptables -A INPUT   -p udp  -s $redeint  -d $ipint    --sport 22    -j
> ACCEPT
> iptables -A OUTPUT  -p udp  -s $ipint    -d $redeint  --dport 22    -j
> ACCEPT
>
>
> --
> Interessado em aprender mais sobre o Ubuntu em português?
> http://wiki.ubuntu-br.org/ComeceAqui  -
> ubuntu-br mailing list
> ubuntu-br@lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-br
>



-- 
Luiz Gustavo
-- 
Interessado em aprender mais sobre o Ubuntu em português?
http://wiki.ubuntu-br.org/ComeceAqui  -
ubuntu-br mailing list
ubuntu-br@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-br

Responder a