+ Responder ao Tópico



  1. #1
    Visitante

    Padrão pessoal sei muito pouco de linux ajuda pra fazer NAT no ipt.

    pessoal tenho adsl pppoa com ip fixo
    montei um servidor com red hat 9
    e agora!? hehehe

    tem 2 placas de rede no servidor uma q entra o modem(eth0) e a outra que sai para rede interna(eth1) eu queria fazer NAT para ter internet na rede interna, consegui esse script aqui, o q tenho q mudar?? aonde coloco ele???

    #!/bin/bash

    echo
    echo "=========================================="
    echo "| :: SETTING IPTABLES'S CONFIGURATION :: |"
    echo "=========================================="

    ### Passo 1: Limpando as regras ###
    iptables -F INPUT
    iptables -F OUTPUT
    iptables -F FORWARD
    echo "Cleaning all rules .................[ OK ]"

    # Definindo a Politica Default das Cadeias
    iptables -P INPUT DROP
    iptables -P FORWARD DROP
    iptables -P OUTPUT ACCEPT
    echo "Setting default rules ..............[ OK ]"

    ### Passo 2: Desabilitar o trafego IP entre as placas de rede ###
    echo "0" > /proc/sys/net/ipv4/ip_forward
    echo "Setting ip_forward: OFF ............[ OK ]"

    # Configurando a Protecao anti-spoofing
    for spoofing in /proc/sys/net/ipv4/conf/*/rp_filter; do
    echo "1" > $spoofing
    done
    echo "Setting anti-spoofing protection ...[ OK ]"

    # Impedimos que um atacante possa maliciosamente alterar alguma rota
    echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
    echo "Setting anti-redirects .............[ OK ]"

    # Utilizado em diversos ataques, isso possibilita que o atacante determine o "caminho" que seu
    # pacote vai percorrer (roteadores) ate seu destino. Junto com spoof, isso se torna muito perigoso.
    echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
    echo "Setting anti-source_route ..........[ OK ]"

    # Protecao contra responses bogus
    echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
    echo "Setting anti-bugus_response ........[ OK ]"

    # Protecao contra ataques de syn flood (inicio da conexao TCP). Tenta conter ataques de DoS.
    echo 1 > /proc/sys/net/ipv4/tcp_syncookies
    echo "Setting anti-synflood protection ...[ OK ]"

    ### Passo 3: Carregando os modulos do iptables ###
    modprobe ip_tables
    modprobe iptable_filter
    modprobe iptable_mangle
    modprobe iptable_nat
    modprobe ipt_MASQUERADE
    echo "Loading iptables's modules .........[ OK ]"

    ### Passo 4: Agora, vamos definir o que pode passar e o que nao ###
    ####################
    # Cadeia de Entrada

    # LOCALHOST - ACEITA TODOS OS PACOTES
    iptables -A INPUT -i lo -j ACCEPT

    # PORTA 80 - ACEITA PARA A REDE LOCAL
    iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT

    # PORTA 22 - ACEITA PARA A REDE LOCAL
    iptables -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPT

    # No iptables, temos de dizer quais sockets sao validos em uma conexao
    iptables -A INPUT -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
    echo "Setting rules for INPUT ............[ OK ]"

    ################################
    # Cadeia de Reenvio (FORWARD).

    # Primeiro, ativar o mascaramento (nat).
    iptables -t nat -F POSTROUTING
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    echo "Activating IP Mask .................[ OK ]"

    # Agora dizemos quem e o que podem acessar externamente
    # No iptables, o controle do acesso a rede externa e feito na cadeia "FORWARD"

    # COMPUTADOR DO CHEFE - ACEITA TODOS OS PACOTES
    iptables -A FORWARD -s 192.168.3.50 -j ACCEPT

    # PORTA 3128 - ACEITA PARA A REDE LOCAL
    iptables -A FORWARD -i eth1 -p tcp --dport 3128 -j ACCEPT

    # Redireciona porta 80 para 3128 (squid)
    iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

    # PORTA 53 - ACEITA PARA A REDE LOCAL
    iptables -A FORWARD -i eth1 -p udp --dport 53 -j ACCEPT

    # PORTA 110 - ACEITA PARA A REDE LOCAL
    iptables -A FORWARD -i eth1 -p tcp --dport 110 -j ACCEPT

    # PORTA 25 - ACEITA PARA A REDE LOCAL
    iptables -A FORWARD -i eth1 -p tcp --dport 25 -j ACCEPT

    # PORTA 443 - ACEITA PARA A REDE LOCAL
    iptables -A FORWARD -i eth1 -p tcp --dport 443 -j ACCEPT

    # PORTA 21 - ACEITA PARA A REDE LOCAL
    iptables -A FORWARD -i eth1 -p tcp --dport 21 -j ACCEPT

    # No iptables, temos de dizer quais sockets sao validos em uma conexao
    iptables -A FORWARD -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
    echo "Setting rules for FORWARD ..........[ OK ]"

    # Finalmente: Habilitando o trafego IP, entre as Interfaces de rede
    echo "1" > /proc/sys/net/ipv4/ip_forward
    echo "Setting ip_forward: ON .............[ OK ]"
    echo "Finished!! Firewall: OK! ...........[ OK ]"
    echo "=========================================="
    echo

  2. #2

    Padrão pessoal sei muito pouco de linux ajuda pra fazer NAT no ipt.

    Cara, você já conseguiu conectar o servidor na internet utilizando a sua net PPPoA? Que tipo de conexão você tem? Às vezes é só instalar o DHCP client que mata o problema, daí você ajusta as rotas corretamente e executa o seguinte no seu IPTables:

    # echo 1 > /proc/sys/net/ipv4/ip_forward
    # iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


    Abraços!

  3. #3
    Visitante

    Padrão pessoal sei muito pouco de linux ajuda pra fazer NAT no ipt.

    sim e pppoa
    meu modem esta em dhcp mas como esta com o ZIPB ativado no modem, consigo ter o ip real na maquina mesmo
    entao quer dizer q eu so preciso dessas duas linha no meu iptables
    pra funcionar o nat e consequentemente a net nas maquinas da rede interna?

  4. #4

    Padrão pessoal sei muito pouco de linux ajuda pra fazer NAT no ipt.

    Bom, nesse caso creio eu que você só vai ter que instalar os .rpms do DHCP client e inserir as linhas acima no seu script de firewall. Caso você queira um servidor proxy forte, você vai ter que utilizar um Squid.
    Sinto por não poder te ajudar muito, é que eu nunca utilizei PPPoA no GNU/Linux.



    Abraços!