+ Responder ao Tópico



  1. #1
    Visitante

    Padrão NAT (enviei denovo pq apareceu um erro aqui...)

    Pessoal, preciso de ajuda!

    Sei que vocês já devem estar de saco cheio de responder isso, mas vou mandar assim mesmo...

    Primeiro a história:

    Trabalho em uma empresa que possui uma rede de aprox 50 micros, sendo a grande maioria de win98. Temos também uma conexão speedy com ip fixo (não arrumaram o nosso ainda!), compartilhada para as estações por meio de um pequeno micro também com win98 rodando o medíocre ICS.
    Depois de muitos travamentos e tal, o ICS deixou de ser DHCP, o que fez com que mudássemos toda a rede para IP estático nas máquinas (loucura, mas me pediram pra fazer isso...). Esse gateway que usamos hoje é um Pentium 166 com 64 de RAM duas plaquinas de rede, sendo uma 3com e outra realtek vagabunda.
    Depois de muito insistir, convenci o meu patrão a deixar que eu instalasse um pinguim no lugar desse servidor, pra que ele seja, além de gateway, também o DHCP da rede. Disse tbm que se a máquina aguentar, poderia instalar um DNS nele.Diante de tal situação, resolvi colocar meus poucos conhecimentos em prática.
    Como a gateway nã pode parar, peguei um athlon da rede e instalei o vmware pra emular duas máquinas e poder testar roteamento e NAT nessa micro-rede-virtual.

    Até agora, consegui aprender sozinho como instalar o Linux e configurar o roteamento e o DHCP (eu achei um grande feito... só lendo man-pages. vale lembrar que nunca tinha trabalhado com redes no linux... só sabia tocar musiquina e escrever no vi). Só que o meu roteador-virtual repassa pacotes de um lado para o outro livremente, o que não pode acontecer de forma alguma na vida real.

    Depois de muito pesquisar, descobri que se tratava então de NAT, e que faria isso usando o IPTABLES (kernel 2.4.18 do CL<IMG SRC="images/forum/icons/icon_cool.gif">. Alguém poderia me ajudar?

    Dados atuais:

    Rede internet: 192.168.0.0
    Máscara: 255.255.255.0
    IP do Gateway: 192.168.0.1 (interno, na placa eth0) e 200.165.65.65/24 (externo, na placa eth1 e fictício, por ser fixo)

    As duas placas de rede eu já consegui configurar.

    Detalhe: Só preciso de um esqueminha bem simples, sem maiores restrições. Usuários podem usar MSN, ICQ, FTP e outras frescuras sem problemas...

    Algém poderia me ajudar?
    Agradeço desde já

    Pablo Sanchez

  2. #2
    Futuremax
    Visitante

    Padrão NAT (enviei denovo pq apareceu um erro aqui...)

    Já que vc quer que todos tenham acesso a tudo, vc pode fazer assim:

    #!/bin/sh
    #############################################################
    # Script Criado Por: #
    # Rodrigo Gustavo Gallacci #
    # FIREWALL EM LINUX - iptables #
    #############################################################

    case $1 in
    &acute;start&acute
    #Primeiro precisamos levantar todos os serviços do firewall
    USO=`cat /usr/firewall`
    if [ $USO != 1 ]
    then
    echo 1 > /usr/firewall
    echo 1 > /proc/sys/net/ipv4/ip_forward
    modprobe iptable_nat
    insmod ip_nat_ftp
    insmod ip_conntrack_ftp
    fi
    #Agora limpamos todas as regras
    iptables -F
    iptables -t nat -F
    iptables -X
    iptables -X -t nat
    iptables -Z

    #Aqui não vou fechar porta nenhuma,
    #Mas fique esperto depois para fechar as que não são importantes pra vc
    iptables -P INPUT DROP
    iptables -P FORWARD DROP
    iptables -P OUTPUT ACCEPT

    #Agora trocamos o ip interno para o acesso a internet
    iptables -A PREROUTING -t nat -d 127.0.0.1/32 -j DNAT --to IP_REDE_INTERNA
    iptables -A POSTROUTING -t nat -s IP_REDE_INTERNA/MASK -j SNAT --to IP_REDE_EXTERNA
    iptables -A POSTROUTING -t nat -s IP_REDE_INTERNA/MASK -j MASQUERADE

    iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
    iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    #A partir daki vc coloca as portas que vc quer proibir exemplo
    iptables -A FORWARD -p tcp --dport 200:300 -j DROP
    #Essa linha vai fechar todas as portas de 200 até 300, pode ser assim também
    iptables -A FORWARD -p tcp -s 200.230.222.10 -j DROP
    #Essa linha rejeita tudo que vier do ip 200.230.222.10
    touch /var/lock/subsys/firewall
    ;;
    &acute;stop&acute
    #Paramos o serviço
    iptables -F
    iptables -t nat -F
    iptables -X.p
    iptables -t nat -X
    iptables -Z
    iptables -P INPUT ACCEPT
    iptables -P FORWARD ACCEPT
    echo 0 > /usr/firewall
    rm -f /var/lock/subsys/firewall
    ;;
    &acute;restart&acute
    #Restartamos o serviço
    echo "Parando o serviço de firewall: [OK]"
    $0 start
    echo "Iniciando o serviço de firewall: [OK]"
    ;;
    &acute;list&acute
    iptables -L -t nat
    iptables -L
    ;;
    *)
    echo ""
    echo "Erro 001:"
    echo "Comando firewall não reconhecido"
    echo "Tente digitar firewall {start|stop|restart|list}"
    echo ""
    exit 0
    ;;
    esac


    Leia com atençao e espero ter ajudado......
    Qualquer dúvida meu e-mail é [email protected] me manda um e-mail que eu te ajudo!!!! <IMG SRC="images/forum/icons/icon_wink.gif">

  3. #3
    Visitante

    Padrão NAT (enviei denovo pq apareceu um erro aqui...)

    Valeu pela ajuda, cara...

    Vou tentar implantar o pinguim no lugar do ics nesse domingo e conto as
    notícias depois. Depois, com mais calma, vou analisar com cuidado o script pra conhecer melhor o iptables. Um dia vou entender mais desse sistema pra poder ajudar por aqui também...
    Pra quem quebrou a cabeça sozinho e entendeu a lógica e as instruções de como fazer funcionar um DHCP e um DNS no linux sem nunca ter montado um antes, iptables vai ser só mais uma coisinha a entender.

    Obrigado!