Conforme orientacao dos colegas , fui at� o site
http://focalinux.cipsga.org.br
e encontrei um exemplo de script de firewall bastante interessante e
inclusive personalizei-o para minha rede e que inclusive poder� 
facilmente ser alterado pelos colegas apenas mexendo nos cabecalhos
de algumas variaveis.
Porem neste script que baixei da internet presupoe que o meu smtp e 
squid estejam na mesma maquina com acesso a internet e at� agora estou 
tentando modificar isso.
J� fui no MAN, Google, Historico, ... e at� consegui algumas regras para 
fazer isso, coloquei no meu script, mas na pratica n�o funciona. Eu acho 
que existe posicao correta para acrescenta-lo no script e eu n�o sei 
qual �, o problema deve ser bem simples para que entende de iptables.

No script abaixo eu comentei os dois problemas que tenho, um � o 
redirecionamento de SMTP (ip quente para ip frio) e o outro � para o 
firewall nao barrar as requisicoes do servidor que possui o squid.

Alguem poderia me dar uma m�ozinha ?

Desde j� continuo agradecendo.


#!/bin/sh
# Modelo de configuracao de firewall
# Autor: Gleydson M. Silva
# Data: 05/09/2001
# Adaptado para minha rede por : [EMAIL PROTECTED] em 05/09/2002
# Descricao: Produzido para ser distribuido livremente, acompanha o guia
#             Foca GNU/Linux. http://focalinux.cipsga.org.br
#

# E' assumido um sistema usando kmod para carga automatica dos modulos
# usados por esta configuracao do firewall:
# ipt_filter
# ipt_nat
# ipt_conntrack
# ipt_mangle
# ipt_TOS
# ipt_MASQUERADE
# ipt_LOG

# Se voce tem um kernel modularizado que nao utiliza o kmod, sera 
necessario
# carregar estes modulos via modprobe, insmod ou iptables --modprobe=modulo

##############################################################
# Hamacker->Vamos carregar no braco todos os modulos         #
# porque nao uso nenhum kmod                                 #
##############################################################
#/sbin/modprobe ipt_mangle (nao encontrei esse modulo)
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_nat
/sbin/modprobe iptable_filter
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_REJECT
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_conntrack_irc
/sbin/modprobe ipt_REDIRECT
/sbin/modprobe ipt_tos
/sbin/modprobe ipt_MASQUERADE

# Definindo os devices, rede local, smtp local e squid
DEV_INTERNET='eth1'
DEV_LOCAL='eth0'
REDE_INTERNA='192.168.0.0/24'
REDE_SERVIDORES='192.168.0.20/24'
IP_FIREWALL_INVALIDO='192.168.0.254'
IP_SMTP_SERVER='192.168.0.3:25'
IP_SQUID_SERVER='192.168.0.3'

##########################################
# Hamacker-> Limpando regras de firewall #
##########################################
/sbin/iptables -F
/sbin/iptables -X

###########################################
# Iniciando firewall com politicas padrao #
###########################################
# 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


##### Protecao 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 numero maximo de conexoes simultaneas
# com base na memoria do sistema. Para 32MB = 2048, 64MB = 4096, 128MB = 
8192,
# sendo que sao usados 350 bytes de memoria residente para controlar
# cada conexao.
# Quando este limite e' excedido a seguinte mensagem e' mostrada:
#  "ip_conntrack: maximum limit of XXX entries exceed"
#
# Como temos uma rede simples, vamos abaixar este limite. Por outro lado 
isto
# criara uma certa limitacao de trafego para evitar a sobrecarga do 
servidor.
echo "2048" > /proc/sys/net/ipv4/ip_conntrack_max

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

##### Chain INPUT #####
# Criamos um chain que sera usado para tratar o trafego vindo da Internet e
iptables -N ppp-input

# Aceita todo o trafego vindo do loopback e indo pro loopback
iptables -A INPUT -i lo -j ACCEPT
# Todo tr�fego vindo da rede interna tambem e' aceito
iptables -A INPUT -s $REDE_INTERNA -i $DEV_LOCAL -j ACCEPT

# Conexoes vindas da interface ppp0 sao tratadas pelo chain ppp-input
iptables -A INPUT -i $DEV_INTERNET -j ppp-input

# Qualquer outra conexao desconhecida e' imediatamente registrada e 
derrubada
iptables -A INPUT -j LOG --log-prefix "FIREWALL: INPUT "
iptables -A INPUT -j DROP

##### Chain FORWARD ####
# Permite redirecionamento de conexoes entre as interfaces locais
# especificadas abaixo. Qualquer trafego vindo/indo para outras
# interfaces sera' bloqueado neste passo
iptables -A FORWARD -d $REDE_INTERNA -i $DEV_INTERNET -o $DEV_LOCAL -j 
ACCEPT
iptables -A FORWARD -s $REDE_INTERNA -i $DEV_LOCAL -o $DEV_INTERNET -j 
ACCEPT
iptables -A FORWARD -j LOG --log-prefix "FIREWALL: FORWARD "
iptables -A FORWARD -j DROP

##############################################################
# Hamacker->Vamos redirecionar toda conexao smtp que vier da #
# internet (DEV_INTERNET) para outro servidor smtp na rede   #
##############################################################
# N�o sei como fazer isso funcionar ainda, estou quebrando a #
# cabeca, na minha opniao a linha abaixo deveria funcionar   #
# alguem poderia ajudar ?                                    #
##############################################################
#iptables -I FORWARD -p udp -d $IP_FIREWALL_INVALIDO --dport 25 -j ACCEPT
iptables -I FORWARD -p udp -d $DEV_INTERNET --dport 25 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i $DEV_INTERNET --dport 25 -j DNAT 
--to $IP_SMTP_SERVER

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

# Primeiro aceitamos o trafego vindo da Internet para o servico www 
(porta 80)
iptables -A ppp-input -p tcp --dport 80 -j ACCEPT

# A tentativa de acesso externo a estes servicos serao registrados no syslog
# do sistema e serao bloqueados pela ultima 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 conexao de fora para esta maquina
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 trafego e' aceito
iptables -A ppp-input -j ACCEPT

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

##### Chain POSTROUTING #####
# Permite qualquer conexao vinda com destino a lo e rede local para 
$DEV_LOCAL
iptables -t nat -A POSTROUTING -o lo -j ACCEPT
iptables -t nat -A POSTROUTING -s $REDE_INTERNA -o $DEV_LOCAL -j ACCEPT

# Nao queremos que usuarios tenham acesso direto a www e smtp da rede 
externa, o
# squid e smtpd do firewall devem ser obrigatoriamente usados.
# Tambem registramos as tentativas para monitorarmos qual
# maquina esta tentando conectar-se diretamente.
iptables -t nat -A POSTROUTING -s $REDE_INTERNA -o $DEV_INTERNET -p tcp 
--dport 80 -j LOG --log-prefix "FIREWALL: SNAT-www "
iptables -t nat -A POSTROUTING -s $REDE_INTERNA -o $DEV_INTERNET -p tcp 
--dport 25 -j LOG --log-prefix "FIREWALL: SNAT-smtp "

#################################################
# Hamacker-> pequena modificacao para permitir  #
# que usuarios internos possam usar smtp do     #
# provedor                                      #
#################################################
#iptables -t nat -A POSTROUTING -s $REDE_INTERNA -o $DEV_INTERNET -p tcp 
--dport 25 -j DROP
iptables -t nat -A POSTROUTING -s $REDE_INTERNA -o $DEV_INTERNET -p tcp 
--dport 25 -j ACCEPT

##################################################
# Hamacker->Outra modificacao para permitir que  #
# www seja permitido apenas pelo servidor que    #
# possui squid                                   #
##################################################
##################################################
# Tambem ainda n�o consegui fazer o firewall     #
# permitir que pelo menos o squid use a porta 80 #
# Alguem possui alguma ajuda ?                   #
# A segunda linha abaixo deveria permitir, mas   #
# como sou novato em iptables, simplesmente nao  #
# funciona                                       #
##################################################
iptables -t nat -A POSTROUTING -s $REDE_INTERNA -o $DEV_INTERNET -p tcp 
--dport 80 -j DROP
iptables -t nat -A POSTROUTING -s $IP_SQUID_SERVER -o $DEV_INTERNET -p 
tcp --dport 80 -j ACCEPT

# E' feito masquerading dos outros servicos da rede interna
# indo para a interface $DEV_INTERNET
iptables -t nat -A POSTROUTING -s $REDE_INTERNA -o $DEV_INTERNET -j 
MASQUERADE

# Qualquer outra origem de trafego desconhecida indo para
# $DEV_LOCAL (conexoes vindas de $DEV_INTERNET) sao bloqueadas aqui
iptables -t nat -A POSTROUTING -o $DEV_LOCAL -d $REDE_INTERNA -j LOG 
--log-prefix "FIREWALL: SNAT unknown"
iptables -t nat -A POSTROUTING -o $DEV_LOCAL -d $REDE_INTERNA -j DROP
# Quando iniciamos uma conexao ppp, obtermos um endereco
# classe A (10.x.x.x) e apos estabelecida a conexao real,
# este endereco e' modificado. O trafego indo para a
# interface ppp nao devera ser bloqueado. Os bloqueios serao feitos no
# chain INPUT da tabela filter
iptables -t nat -A POSTROUTING -o $DEV_INTERNET -j ACCEPT

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


###############################################
#                Tabela mangle                #
###############################################

##### Chain OUTPUT #####
# Define minimo de espera para os servicos ftp, telnet, irc e DNS, isto
# dara uma melhor sensacao de conexao em tempo real e diminuira o tempo
# de espera para conexoes que requerem resolucao de nomes.
iptables -t mangle -A OUTPUT -o $DEV_INTERNET -p tcp --dport 21 -j TOS 
--set-tos 0x10
iptables -t mangle -A OUTPUT -o $DEV_INTERNET -p tcp --dport 23 -j TOS 
--set-tos 0x10
iptables -t mangle -A OUTPUT -o $DEV_INTERNET -p tcp --dport 6665:6668 
-j TOS --set-tos 0x10
iptables -t mangle -A OUTPUT -o $DEV_INTERNET -p udp --dport 53 -j TOS 
--set-tos 0x10



Assinantes em 12/09/2002: 2225
Mensagens recebidas desde 07/01/1999: 182922
Historico e [des]cadastramento: http://linux-br.conectiva.com.br
Assuntos administrativos e problemas com a lista:
            mailto:[EMAIL PROTECTED]

Responder a