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

Bruno Lima bslima19 em gmail.com
Domingo Abril 20 15:37:58 UTC 2008


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 ::.. <skroot em gmail.com>:

> 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 <http://192.168.0.1/>
>                        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: ubuntu-br-bounces em lists.ubuntu.com
> [mailto:ubuntu-br-bounces em lists.ubuntu.com] 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 <http://192.168.123.1/>
>
> 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
> ubuntu-br em lists.ubuntu.com
> 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
> ubuntu-br em lists.ubuntu.com
> https://lists.ubuntu.com/mailman/listinfo/ubuntu-br
>



-- 
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
-------------------



More information about the ubuntu-br mailing list