Re: [Ubuntu-BR] Script Iptables não faz o que eu que ro :(

2008-04-21 Por tôpico Bruno Lima
Eu dei uma enxugada no script mas tenho a impressão que o problema está na
estrutura de rede que eu montei aqui. Fiz assim: conexão da internet via
dhcp entra na eth0 do firewall e na outra placa de rede eth2 do firewall sai
um cabo ligado na porta WAN (192.168.123.253) do roteador wireless linksys,
ai configurei o roteador para IP statico (192.168.123.254) colocando o
gateway o ip do firewall (192.168.123.254),  na rede interna do roteador
coloquei o ip dele como 192.168.123.252, com o DHCP server ligado para a
faixa de ip entre 192.168.123.100-140.

A primeira coisa que estranhei foi não conseguir acessar o roteador linksys
do firewall, apesar de eles estarem na mesma rede (192.168.123.0). Os
clientes wi-fi pegam o roteador como gateway e os ips estâo na mesma rede (
192.168.123.0) mas não consigo dar ping no firewall a partir dos clientes da
rede.

Alguem sabe o que eu posso estar fazendo errado?
O que posso fazer para acertar isso ?
Vai abaixo o script de firewall que eu fiz.
PS: Não to nem me preocupando com firewall no momento só quero acertar a
estrutura da rede primeiro..
Obrigado de ante-mão a todos

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

EXTDEV="eth0"   ## placa de rede externa
INTDEV="eth2"   ## placa de rede interna
IF_LOC="lo" # loopback

EXTIP=`ifconfig $EXTDEV | grep "inet " | cut -f2 -d: | cut -f1 -dB` ##
externo ip
INTIP=`ifconfig $INTDEV | grep "inet " | cut -f2 -d: | cut -f1 -dB` ##
interno ip

NET_INT="192.168.123.0/255.255.255.0"# Rede da interface INTDEV

case "$1" in
  start)

#
## Compartilhar Internet
#
echo -n "Enabling IP Forwarding ... "
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "done."

#
## Dynamic Ip
#
echo -n "Enabling Dynamic Ips ... "
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "done."

#
## Limpa as tabelas e setando a politica DROP
#

echo -n "Flushing tables, Setting default policies to DROP ... "
$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 "done."


echo -n "Setting up the firewall now ... "

# Aceita todo o tráfego vindo do loopback e indo pro loopback
$IPTABLES -A INPUT -i lo -j ACCEPT

## Somente conexões estabelecidas por nós primeiro
$IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#Aceitar conexao das maquinas da rede interna
$IPTABLES -A INPUT -p tcp --syn -s $NET_INT -j ACCEPT

## Permitir ssh (22) e svn (8080)
$IPTABLES -A INPUT -p tcp --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 8080 -j ACCEPT


## Conexões estabelicidas sejam encaminhadas
$IPTABLES -A FORWARD -i $EXTDEV -m state --state RELATED,ESTABLISHED -j
ACCEPT

## Conexões da rede interna para internet
$IPTABLES -A FORWARD -i $INTDEV -o $EXTDEV -j ACCEPT


## MASQUAREDE (compartilhar internet)
$IPTABLES -A POSTROUTING -t nat -o $EXTDEV -j MASQUERADE


$IPTABLES -P OUTPUT ACCEPT


echo "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)
sh $0 stop
sh $0 start
;;
status)
$IPTABLES -L -n -v
;;
*)
echo "usage: $0 {start|stop|restart|status}"
exit 1
esac
exit 0

## EOF ##





2008/4/20 Bruno Lima <[EMAIL PROTECTED]>:

> Mas nesse caso eu não estaria bloquando tudo ?
> Por que a politica padrao é DROP certo ?
> Mas assim que tiver lah na empresa eu vou testar o que falaste ...
> obrigado pela atenção ...
> :)
>
> 2008/4/19 ..:: S.e.r.i.a.l ::.. <[EMAIL PROTECTED]>:
>
> 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 PROTEC

Re: [Ubuntu-BR] Script Iptables não faz o que eu que ro :(

2008-04-20 Por tôpico Bruno Lima
Mas nesse caso eu não estaria bloquando tudo ?
Por que a politica padrao é DROP certo ?
Mas assim que tiver lah na empresa eu vou testar o que falaste ...
obrigado pela atenção ...
:)

2008/4/19 ..:: S.e.r.i.a.l ::.. <[EMAIL PROTECTED]>:

> 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

Re: [Ubuntu-BR] Script Iptables não faz o que eu que ro :(

2008-04-19 Por tôpico ..:: S.e.r.i.a.l ::..
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 firew