Amigo,
Posso estar falando besteira, mas tem coisa demais nesse script para fazer
apenas o que vc quer, mas vamos lá:
Troubleshoot 1) reinicie sei firewall sem rodar esse script
Troubleshoot 2) Digite esses codigos:
iptables -t nat -A PREROUTING -s 0/0 -d 0/0 -p tcp
--dport 80 -j DNAT 192.168.0.1:80
echo "1" > /proc/sys/net/ipv4/ip_forword
troubleshoot 3) Garanta que seu servidor 192.168.0.1 tenha gateway
configurado para o ip do seu firewall
troubleshoot 4) teste seu acesso web da internet para seu servidor.
Me fale no que deu depois
[.]'s
Serial
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Bruno Lima
Sent: sábado, 19 de abril de 2008 16:38
To: Lista de discussão do LoCoTeam Brasileiro
Subject: [Ubuntu-BR] Script Iptables não faz o que eu quero :(
Pessoal vou explicar a minha situação:
Tenho um computador AMD DURON 900Mhz com 256Mb de memoria aqui na empresa,
ele tava encostado sem fazer nada, ai decidi colocar ele como firewall,
instalei o ubuntu recompilei o kernel deixei enxuto, ficou bala. Sim, mas
vamos seguir ao firewall: Ele tem 2 placas de rede,obvio, uma de cara para
internet outra que vai ser ligada na porta WAN de um roteador wireless, a
empresa toda wifi :). O que eu quero com o firewall é liberar o acesso aos
serviços básicos http,https,ssh,vnc, entre outros, além do que eu tenho um
servidor web que vai ficar atras do roteador ao qual eu preciso
redirecionar a porta 80 para este servidor, além da porta de vnc para ele.
Depois de 2 dias tentando configurar tudo isso aqui no iptables eu acho que
cheguei a algo que faz sentido pelo menos pra mim mas que não está
funcionando do jeito que eu quero.
Abaixo vai o script do iptables que eu fiz, eu que dei a ideia o chefe
adorou e me deu até sexta-feira dia 25, mas como eu me empolguei com a ideia
quero acabar logo e botar essa budega pra funcionar. Por favor me ajudem :)
#!/bin/sh
#
# Script iptables para firewall.
# Feito para empresa Intertech - Soluções em Informática
# Autor: Bruno Seabra Nogueira Mendonça Lima - 16-04-2008
#
#
# Libera as portas do SVN (8080), VNC(5800/5900), SSH(22)
# Redireciona as portas da WEB(80) e VNC(5801/5901) para a máquina
192.168.123.1 (SERVIDOR SOL)
# Aceita conexões da rede interna
#
#
#
IPTABLES="/sbin/iptables" ## location to iptables binary file
EXTDEV="eth0" ## external device that connects to modem
INTDEV="eth1" ## internal device that connects to lan
IF_LOC="lo" # Interface Loopback
EXTIP=`ifconfig $EXTDEV | grep "inet " | cut -f2 -d: | cut -f1 -dB` ##
external ip address
INTIP=`ifconfig $INTDEV | grep "inet " | cut -f2 -d: | cut -f1 -dB` ##
internal ip address
NET_INT="192.168.123.0/24" # Rede da interface IF_INT
case "$1" in
start)
#
## First we want to enable ip forwarding
#
echo -n "Habilitando Compartilhamento ... "
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "Pronto!"
#
## Secondly we want to enable dynamic ips
#
echo -n "Habilitando IP Dinamico ... "
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "Pronto."
#
## Now lets clear all the tables incase they were improperly shutdown
#
echo -n "Descarregando regras e tabelas ... "
$IPTABLES -P INPUT DROP
$IPTABLES -F INPUT
$IPTABLES -P FORWARD DROP
$IPTABLES -F FORWARD
$IPTABLES -P OUTPUT DROP
$IPTABLES -F OUTPUT
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
echo "Pronto."
#
## Its time to start setting up our rules and policies
#
echo -n "Setando o firewall agora ... "
#################################################################
# CHAIN DE PREROUTING
#################################################################
echo -n "Setando as regras de PREROUTING ..."
#Libera o VNC na porta 5900
$IPTABLES -t nat -A PREROUTING -p tcp -i $EXTDEV --dport 5800:5900 -j
DNAT --to 192.168.123.1:5800-5900
$IPTABLES -t nat -A PREROUTING -p udp -i $EXTDEV --dport 5800:5900 -j
DNAT --to 192.168.123.1:5800-5900
#Libera o servidor WEB na porta 80
$IPTABLES -t nat -A PREROUTING -p tcp -i $EXTDEV --dport 80 -j DNAT --to
192.168.123.1:80
echo "Pronto!"
#################################################################
# REGRAS DE INPUT E OUTPUT
#################################################################
echo -n "Setando as regras de input e output ..."
#LIbera interface local
echo -n "Liberando interface local ..."
$IPTABLES -A OUTPUT -j ACCEPT -o $IF_LOC
$IPTABLES -A INPUT -j ACCEPT -i $IF_LOC
echo " Pronto!"
## First we want to allow only incoming connections that we establish first
echo -n "Liberando conexões que foram estabelicidas primeiro ... "
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
echo "Pronto!"
#Aceita que o firewall acesse a web
echo -n "Liberando acesso a WEB ... "
$IPTABLES -A OUTPUT -j ACCEPT -p tcp --dport 80
$IPTABLES -A INPUT -j ACCEPT -p tcp --sport 80
echo "Pronto!"
#Liberando que o firewall acesse o msn
echo -n "Liberando acesso a MSN ... "
$IPTABLES -A OUTPUT -j ACCEPT -p tcp --dport 1863
$IPTABLES -A INPUT -j ACCEPT -p tcp --sport 1863
echo "Pronto!"
#Aceita que o firewall faca ssh pra fora
echo -n "Liberando SSH para a internet ... "
$IPTABLES -A OUTPUT -j ACCEPT -p tcp --dport ssh
$IPTABLES -A INPUT -j ACCEPT -p tcp --sport ssh
echo "Pronto!"
#Aceita conexao com o no-ip.com
echo -n "Liberando conexão com o no-ip.com (8245) ..."
$IPTABLES -A OUTPUT -j ACCEPT -p tcp --dport 8245
$IPTABLES -A INPUT -j ACCEPT -p tcp --sport 8245
echo "Pronto!"
#Aceita conexao com o Apache
echo -n "Liberando conexão com Apache (SVN:8080) ..."
$IPTABLES -A OUTPUT -j ACCEPT -p tcp --dport 8080
$IPTABLES -A INPUT -j ACCEPT -p tcp --sport 8080
echo "Pronto!"
#Aceita conexao com o ssh
echo -n "Liberando conexão com SSH (22) ..."
$IPTABLES -A OUTPUT -j ACCEPT -p tcp --dport 22
$IPTABLES -A INPUT -j ACCEPT -p tcp --sport 22
echo "Pronto!"
# Aceita conexoes da rede interna
echo -n "Liberando conexões da rede interna ..."
$IPTABLES -A OUTPUT -j ACCEPT -d $NET_INT
$IPTABLES -A INPUT -j ACCEPT -s $NET_INT
echo "Pronto!"
echo -n "Pronto!"
#################################################################
# REGRAS DE FORWARD
#################################################################
echo -n "Setando todas as regras de FOWARD ..."
#
## Aceitar a lan interna acessar a internet
#
## Conexões estabelecidas ou relacionadas sejam encaminhadas imediatamente
$IPTABLES -A FORWARD -i $EXTDEV -m state --state RELATED,ESTABLISHED -j
ACCEPT
## Encaminha todas as conexões da lan interna para internet
$IPTABLES -A FORWARD -i $INTDEV -o $EXTDEV -j ACCEPT
#Libera o VNC na porta 5900
$IPTABLES -A FORWARD -i $EXTDEV -p tcp --dport 5800:5900 -m state --state
NEW,ESTABLISHED,RELATED -j ACCEPT
$IPTABLES -A FORWARD -i $EXTDEV -p udp --dport 5800:5900 -m state --state
NEW,ESTABLISHED,RELATED -j ACCEPT
#Redireciona o WebServer
$IPTABLES -A FORWARD -i $EXTDEV -p tcp --dport 80 -m state --state
NEW,ESTABLISHED,RELATED -j ACCEPT
echo "Pronto!"
#################################################################
# REGRAS DE POSTROUTING
#################################################################
## Masquerade from Internal Net to External Net
$IPTABLES -A POSTROUTING -t nat -o $EXTDEV -j MASQUERADE
#$IPTABLES -P OUTPUT ACCEPT
echo -n "Firewall has been fully installed"
;;
stop)
echo -n "Flushin all rules ... "
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -F INPUT
$IPTABLES -F FORWARD
$IPTABLES -F OUTPUT
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT
$IPTABLES -t nat -F PREROUTING
$IPTABLES -t nat -F POSTROUTING
$IPTABLES -t nat -F OUTPUT
echo "done."
;;
restart)
$0 stop
$0 start
;;
status)
$IPTABLES -L -n -v
#$IPTABLES -t nat -L -n
;;
*)
echo "usage: $0 {start|stop|restart|status}"
exit 1
esac
exit 0
## EOF ##
Obrigado
--
Bruno Seabra Mendoça Lima
--------------
UFMA - Universidade Federal do Maranhão
DEINF - Departamento de Informática
LESERC - Laboratório de Engenharia de Software e Redes de Computadores
Pesquisador
Telefone: 3217-8239
-------------------
Intertech - Soluções em Informática
WEB Developer
Telefone: 3227-1224
-------------------
--
Interessado em aprender mais sobre o Ubuntu em português?
http://wiki.ubuntu-br.org/ComeceAqui -
ubuntu-br mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-br
--
Interessado em aprender mais sobre o Ubuntu em português?
http://wiki.ubuntu-br.org/ComeceAqui -
ubuntu-br mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-br