+ Responder ao Tópico



  1. #1

    Padrão iptables..

    :toim: Distro : Slackware 10
    Após ler muito material na internet, fiz o script abaixo, mas ele não funciona ( não consigo navegar na internet, nem quem acessa o ip fixo e redirecionado para o ip da rede interna que tem o serviço ).
    O rc.ip_forward esta ativado pois consegue-se pingar dos dois lados da rede.
    Para testar o acesso externo ao vnc e terminal, liguei a placa de rede que tem ip web a outra maquina via cabo cross-over com um ip valido da web mesma mascara e nao fucionou , mas consigo pingar a rede interna.

    Obrigado
    Antonio Carlos

    Script de Firewall

    #!/bin/sh
    #
    #
    # Variaveis de Ambiente onde :
    #
    # ETH_WEB = eth com ip fixo da internet;
    # ETH_INT = eth da rede interna;
    # IP_WEB = IP visivel a Internet
    # IP_INT = IP do firewal na rede Interna, Gateway da Rede
    # REDE_LOCAL = Faixa de IP da Rede Interna e Mascara
    #

    ETH_WEB="eth0"
    ETH_INT="eth1"
    IP_WEB="200.152.123.87"
    IP_INT="192.168.0.250"
    REDE_LOCAL="192.168.0.0/255.255.255.0"

    # Limpando as tabelas

    iptables -F
    iptables -X
    iptables -t nat -F
    iptabels -t nat -X

    # Politica de Acesso

    iptables -P INPUT DROP
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD ACCEPT

    iptables -t nat -P PREROUTING ACCEPT
    iptables -t nat -P OUTPUT ACCEPT
    iptables -t nat -P POSTROUTING ACCEPT

    # redirecionamento de pacotes, coloquei mas no slck o rc.ip_forward eh 755
    echo "1" >/proc/sys/net/ipv4/ip_forward

    # liberando o loopback
    iptables -A INPUT -i lo -j ACCEPT
    iptables -A INPUT -m state -state ESTABLISHED,RELATED -j ACCEPT

    # liberando o que vier da rede local
    iptables -A INPUT -s $REDE_LOCAL -i $ETH_INT -j ACCEPT

    # Liberacao de PING (ICMP) na Interface Externa com certa limitacao
    iptables -A INPUT -i $ETH_WEB -p icmp -m limit --limit 2/s -j ACCEPT


    # Liberacao de Portas de Servico com destino a porta web vindo da endereço web

    iptables -A INPUT -i $ETH_WEB -s 0/0 -p tcp --dport 21 -j ACCEPT #liberando ftp
    iptables -A INPUT -i $ETH_WEB -s 0/0 -p tcp --dport 22 -j ACCEPT #liberando ssh
    iptables -A INPUT -i $ETH_WEB -s 0/0 -p tcp --dport 23 -j ACCEPT #liberando telnet
    iptables -A INPUT -i $ETH_WEB -s 0/0 -p tcp --dport 3389 -j ACCEPT #liberando terminal service
    iptables -A INPUT -i $ETH_WEB -s 0/0 -p tcp --dport 5900 -j ACCEPT #liberando vnc


    # Qualquer outro tipo de trafego aceito, creio ser necessario para a rede interna
    iptables -A INPUT -i $ETH_WEB -j ACCEPT

    # Redirecionando da porta 80 para o squid , fazendo proxy transparente
    iptables -t nat -A PREROUTING -p tcp -i $ETH_INT --dport 80 -j REDIRECT --to-port 3128
    iptables -t nat -A PREROUTING -p udp -i $ETH_INT --dport 80 -j REDIRECT --to-port 3128

    # redirecionamento de portas para um host interno
    iptables -t nat -A PREROUTING -p tcp -i $ETH_WEB --dport 3389 -j DNAT --to 192.168.0.200:3398
    iptables -t nat -A PREROUTING -p tcp -i $ETH_WEB --dport 5900 -j DNAT --to 192.168.0.1:5900

    # fazendo o ip masquerade
    iptables -t nat -A POSTROUTING -o $ETH_WEB -j MASQUERADE

  2. #2

    Padrão Re: HELP POR FAVOR, iptables

    Cara vou tentar ajudar !!!

    A funçao desse micro e so gateway de internet ??? So vai repassar a internet pros outros micros ??? Ou vai rodar algum serviço em especifico ???


    Posta ai mais detalhes que tentamos arrumar seu script !!!


    Valeu !!!

  3. #3

    Padrão iptables..

    Ele será Gateway para a rede interna permitindo o acesso a internet e serviços de email.

    Deverá fazer encaminhamento para a rede interna de requisicoes do terminal service (3389) e ultra-vnc (5900)que chega a porta wan.

    Proxy transparente para que seja restringido o acesso dos usuarios a determinados sites e messenger.

    Possivelmente rodará o servidor SAMBA.

    Os serviços de telnet e Ftp estarão ativos e devem poder ser acessados externamente.

    Creio que isso é tudo.

    OBRIGADÃO por sua ajuda

  4. #4

    Padrão Re: HELP POR FAVOR, iptables

    Bem vamos la entao ver se eu consigo te ajudar !!!

    Primeiramente nao sei como foram seus passos para construçao desse script vou passar como normalmente eu faço


    Crio um arquivo chamado firewall dentro de /etc e la coloco as regras, logo apos torno executavel
    #chmod +x /etc/firewall
    Depois para que sempre que se inicie o micro as regras estejam ativas jogo esse caminho dentro do rc.local
    E dentro de /etc levanto as regras ./firewall

    Bem vamos ao script !!!

    Script de Firewall

    #!/bin/sh
    #
    # Ativa roteamento via kernel
    echo "1" >/proc/sys/net/ipv4/ip_forward

    # Limpando as tabelas
    iptables -F
    iptables -X
    iptables -t nat -F
    iptabels -t nat -X

    # Politica de Acesso
    iptables -P INPUT DROP
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD ACCEPT

    # Toda regra reincidente ou estabelecida nao sera lida novamente
    iptables -A INPUT -m state -state ESTABLISHED,RELATED -j ACCEPT

    # liberando o loopback
    iptables -A INPUT -i lo -j ACCEPT

    # liberando o que vier da rede local
    iptables -A INPUT -s $REDE_LOCAL -i $ETH_INT -j ACCEPT

    # Liberacao de PING (ICMP) na Interface Externa com certa limitacao
    iptables -A INPUT -i $ETH_WEB -p icmp -m limit --limit 2/s -j ACCEPT


    # Abre algumas portas
    iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    iptables -A INPUT -p tcp --dport 23 -j ACCEPT
    iptables -A INPUT -p tcp --dport 3389 -j ACCEPT
    iptables -A INPUT -p tcp --dport 5900 -j ACCEPT
    iptables -A INPUT -p tcp --dport 3128 -j ACCEPT

    # redirecionamento de portas para um host interno
    iptables -t nat -A PREROUTING -p tcp -i $ETH_WEB --dport 3389 -j DNAT --to 192.168.0.200:3398
    iptables -t nat -A PREROUTING -p tcp -i $ETH_WEB --dport 5900 -j DNAT --to 192.168.0.1:5900

    # Redirecionando da porta 80 para o squid , fazendo proxy transparente
    iptables -t nat -A PREROUTING -p tcp -i $ETH_INT --dport 80 -j REDIRECT --to-port 3128
    iptables -t nat -A PREROUTING -p udp -i $ETH_INT --dport 80 -j REDIRECT --to-port 3128

    # fazendo o ip masquerade
    iptables -t nat -A POSTROUTING -o $ETH_WEB -j MASQUERADE


    Amigo dessa maneira que coloquei deve funcionar o unico problema e vc usar muito INPUT em suas regras, o que eu te aconselho e usar FORWARD da uma boa lida na internet em relaçao a isso e altera deacordo com suas necessidades, uso minha politica padrao DROP e nunca tive que abrir portas pro pessoal poder coectar o VNC mas enfim !!!


    Qualquer coisa posta ai !!!


    Valeu !!!

  5. #5

    Padrão iptables..

    Eu li um pouquinho mais na internet sob sua recomendacao no INPUT e alterei o script , vc poderia verificar se é isso que vc estava dizendo por favor :



    #!/bin/sh
    #
    #
    # Variaveis de Ambiente onde :
    #
    # ETH_WEB = eth com ip fixo da internet;
    # ETH_INT = eth da rede interna;
    # IP_WEB = IP visivel a Internet
    # IP_INT = IP do firewal na rede Interna, Gateway da Rede
    # REDE_LOCAL = Faixa de IP da Rede Interna e Mascara
    #

    ETH_WEB="eth0"
    ETH_INT="eth1"
    IP_WEB="200.152.123.87"
    IP_INT="192.168.0.250"
    REDE_LOCAL="192.168.0.0/255.255.255.0"

    # Ativa roteamento via kernel
    echo "1" >/proc/sys/net/ipv4/ip_forward

    #Carregando os modulos, vi em uma lista que mesmo estando compilado ao kernell se nao chamar nao funciona
    modprobe iptable_nat

    # Limpando as tabelas
    iptables -F
    iptables -X
    iptables -t nat -F
    iptabels -t nat -X

    # Politica de Acesso
    iptables -P INPUT DROP
    iptables -P OUTPUT ACCEPT
    iptables -P FORWARD ACCEPT

    # Toda regra reincidente ou estabelecida nao sera lida novamente
    iptables -A INPUT -m state -state ESTABLISHED,RELATED -j ACCEPT

    # liberando o loopback
    iptables -A INPUT -i lo -j ACCEPT

    # liberando o que vier da rede local , Eu creio que pelas forward colocadas abaixo eu devo desabiliatar aqui
    # iptables -A INPUT -s $REDE_LOCAL -i $ETH_INT -j ACCEPT

    # Liberacao de PING (ICMP) na Interface Externa com certa limitacao
    iptables -A INPUT -i $ETH_WEB -p icmp -m limit --limit 2/s -j ACCEPT


    # Abre algumas portas ( mudei isso levando em conta seu comentário )
    #iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    #iptables -A INPUT -p tcp --dport 23 -j ACCEPT
    #iptables -A INPUT -p tcp --dport 3389 -j ACCEPT
    #iptables -A INPUT -p tcp --dport 5900 -j ACCEPT
    #iptables -A INPUT -p tcp --dport 3128 -j ACCEPT

    iptables -A FORWARD -p tcp -s $REDE_LOCAL --dport 21 -j ACCEPT
    iptables -A FORWARD -p tcp -s 0/0 --sport 21 -j ACCEPT

    iptables -A FORWARD -p tcp -s $REDE_LOCAL --dport 22 -j ACCEPT
    iptables -A FORWARD -p tcp -s 0/0 --sport 22 -j ACCEPT

    iptables -A FORWARD -p tcp -s $REDE_LOCAL --dport 25 -j ACCEPT
    iptables -A FORWARD -p tcp -s 0/0 --sport 25 -j ACCEPT

    iptables -A FORWARD -p udp -s $REDE_LOCAL --dport 53 -j ACCEPT
    iptables -A FORWARD -p udp -s 0/0 --sport 53 -j ACCEPT

    iptables -A FORWARD -p tcp -s $REDE_LOCAL --dport 110 -j ACCEPT
    iptables -A FORWARD -p tcp -s 0/0 --sport 110 -j ACCEPT

    iptables -A FORWARD -p tcp -s $REDE_LOCAL --dport 3128 -j ACCEPT
    iptables -A FORWARD -p tcp -s 0/0 --sport 3128 -j ACCEPT

    iptables -A FORWARD -p tcp -s $REDE_LOCAL --dport 3389 -j ACCEPT
    iptables -A FORWARD -p tcp -s 0/0 --sport 33890 -j ACCEPT

    iptables -A FORWARD -p tcp -s $REDE_LOCAL --dport 5900 -j ACCEPT
    iptables -A FORWARD -p tcp -s 0/0 --sport 5900 -j ACCEPT


    # redirecionamento de portas para um host interno
    iptables -t nat -A PREROUTING -p tcp -i $ETH_WEB --dport 3389 -j DNAT --to 192.168.0.200:3398
    iptables -t nat -A PREROUTING -p tcp -i $ETH_WEB --dport 5900 -j DNAT --to 192.168.0.1:5900

    # Redirecionando da porta 80 para o squid , fazendo proxy transparente
    iptables -t nat -A PREROUTING -p tcp -i $ETH_INT --dport 80 -j REDIRECT --to-port 3128
    iptables -t nat -A PREROUTING -p udp -i $ETH_INT --dport 80 -j REDIRECT --to-port 3128

    # fazendo o ip masquerade
    iptables -t nat -A POSTROUTING -o $ETH_WEB -j MASQUERADE

  6. #6

    Padrão iptables..

    Kra eu tive esse problema + so q na verdade eram as rotas que deveriam ser modificadas, pois a minha conexão era via modem ADSL, tenta ai quem sabe se num e isso...

    #route del default
    #route add default ppp0

    tenta ai e qualquer coisa posta os resultados...