Página 1 de 3 123 ÚltimoÚltimo
+ Responder ao Tópico



  1. #1

    Smile Regras de NAT para acesso a 2º servidor

    Minha rede está assim:

    Internet --> Servidor Ubuntu ---> Switche ---> Micros + servidor DB

    Esse servidor de DB eu gostaria de acessar ele de fora da empresa!

    Ele tem instalado o PostgreSQL (Windows Server 2010 64 bits).

    Ele possui duas placas de rede.

    Uma com IP fixo na internet (187.7.131.xx) e outra com ip da rede interna (10.1.1.49).

    Meu problema é colocar no firewall (firestarter) uma regra para que eu possa acessar o server de DB (postgreSQL porta 5432) além de poder usar conexão remota nele.

    Gostaria de não utilizar o IP externo para isso (desconectar a placa externa), mas de utilizar NAT para ele para não ficar tão visível na net. Só que não tenho a mínima ideia de como fazer isso.

    Poderiam me ajudar a solucionar esse problema?

    Desde já agradeço a atenção de todos!

  2. #2

    Padrão Re: Regras de NAT para acesso a 2º servidor

    Bem como assim não ficar tão visivel?
    Se vc quer acessar pelo teu ip fixo o BDServer vai ter q deixar visivel a internet..
    A não ser que vc coloque o "kra" que vai conectar no seu DB na regra no caso de ele ser ip fixo tambem.. Mais basicamente seria:

    iptables -t nat -A PREROUTING -d 187.7.131.xx -p tcp --dport 5432 -j DNAT --to <ip-do-servidor-do-banco>

    isso ja deve resolver dependendo do seu firewall se as politicas estiverem setadas como ACCEPT..

    []'s

  3. #3

    Padrão Re: Regras de NAT para acesso a 2º servidor

    Eu coloquei isso, e não consigo acessar o servidor ainda.
    Eu poderia usar essa regra sem a porta para ter acesso à ele (ping, ftp, arquivos)?
    O que eu quis dizer com não ficar tão visível é não colocar um IP Fixo nele (eu possuo 8 IPs fixos).

  4. #4

    Padrão Re: Regras de NAT para acesso a 2º servidor

    Faz um iptables-save como root e posta aqui..

  5. #5

    Padrão Re: Regras de NAT para acesso a 2º servidor

    veja como esta sua configuracao pg_hba.conf no postgres, la deve constar a faixa de ip que o usuario esta utilizando para poder acessa-lo.

  6. #6

    Smile Re: Regras de NAT para acesso a 2º servidor

    Todo e qualquer IP pode acessar meu banco de dados desde que tenha senha, não existe restrição de IP para ele no pg_hba.conf.

    O resultado de iptables-save:

    Código :
    # Generated by iptables-save v1.4.4 on Mon Feb 28 18:06:02 2011
    *nat
    :PREROUTING ACCEPT [69744:5689006]
    :OUTPUT ACCEPT [6008:408450]
    :POSTROUTING ACCEPT [202:13915]
    -A PREROUTING -i eth0 -p tcp -m tcp --dport 1:6889 -j DNAT --to-destination 10.1.1.49:1-6889 
    -A PREROUTING -i eth0 -p udp -m udp --dport 1:6889 -j DNAT --to-destination 10.1.1.49:1-6889 
    -A POSTROUTING -o eth0 -j MASQUERADE 
    COMMIT
    # Completed on Mon Feb 28 18:06:02 2011
    # Generated by iptables-save v1.4.4 on Mon Feb 28 18:06:02 2011
    *mangle
    :PREROUTING ACCEPT [5984039:4880513965]
    :INPUT ACCEPT [361412:474856775]
    :FORWARD ACCEPT [5622576:4405635698]
    :OUTPUT ACCEPT [247662:12111018]
    :POSTROUTING ACCEPT [5870001:4417616648]
    -A OUTPUT -p tcp -m tcp --dport 20:21 -j TOS --set-tos 0x08/0xff 
    -A OUTPUT -p tcp -m tcp --dport 22 -j TOS --set-tos 0x08/0xff 
    -A OUTPUT -p tcp -m tcp --dport 68 -j TOS --set-tos 0x08/0xff 
    -A OUTPUT -p tcp -m tcp --dport 80 -j TOS --set-tos 0x08/0xff 
    -A OUTPUT -p tcp -m tcp --dport 443 -j TOS --set-tos 0x08/0xff 
    -A OUTPUT -p tcp -m tcp --dport 20:21 -j TOS --set-tos 0x08/0xff 
    -A OUTPUT -p tcp -m tcp --dport 22 -j TOS --set-tos 0x08/0xff 
    -A OUTPUT -p tcp -m tcp --dport 25 -j TOS --set-tos 0x08/0xff 
    -A OUTPUT -p tcp -m tcp --dport 53 -j TOS --set-tos 0x08/0xff 
    -A OUTPUT -p tcp -m tcp --dport 67 -j TOS --set-tos 0x08/0xff 
    -A OUTPUT -p tcp -m tcp --dport 80 -j TOS --set-tos 0x08/0xff 
    -A OUTPUT -p tcp -m tcp --dport 110 -j TOS --set-tos 0x08/0xff 
    -A OUTPUT -p tcp -m tcp --dport 143 -j TOS --set-tos 0x08/0xff 
    -A OUTPUT -p tcp -m tcp --dport 443 -j TOS --set-tos 0x08/0xff 
    -A OUTPUT -p tcp -m tcp --dport 1812 -j TOS --set-tos 0x08/0xff 
    -A OUTPUT -p tcp -m tcp --dport 1813 -j TOS --set-tos 0x08/0xff 
    -A OUTPUT -p tcp -m tcp --dport 2401 -j TOS --set-tos 0x08/0xff 
    -A OUTPUT -p tcp -m tcp --dport 8080 -j TOS --set-tos 0x08/0xff 
    -A OUTPUT -p tcp -m tcp --dport 22 -j TOS --set-tos 0x10/0xff 
    -A OUTPUT -p tcp -m tcp --dport 6000:6015 -j TOS --set-tos 0x08/0xff 
    COMMIT
    # Completed on Mon Feb 28 18:06:02 2011
    # Generated by iptables-save v1.4.4 on Mon Feb 28 18:06:02 2011
    *filter
    :INPUT DROP [1764:257172]
    :FORWARD DROP [11:14700]
    :OUTPUT DROP [0:0]
    :INBOUND - [0:0]
    :LOG_FILTER - [0:0]
    :LSI - [0:0]
    :LSO - [0:0]
    :OUTBOUND - [0:0]
    -A INPUT -s 201.10.120.2/32 -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT 
    -A INPUT -s 201.10.120.2/32 -p udp -j ACCEPT 
    -A INPUT -s 201.10.128.3/32 -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -j ACCEPT 
    -A INPUT -s 201.10.128.3/32 -p udp -j ACCEPT 
    -A INPUT -i lo -j ACCEPT 
    -A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec -j ACCEPT 
    -A INPUT -p icmp -m icmp --icmp-type 0 -m limit --limit 1/sec -j ACCEPT 
    -A INPUT -p udp -m udp --dport 33434 -j ACCEPT 
    -A INPUT -p icmp -m icmp --icmp-type 3 -j ACCEPT 
    -A INPUT -p icmp -m icmp --icmp-type 3/1 -j ACCEPT 
    -A INPUT -p icmp -m icmp --icmp-type 13 -j ACCEPT 
    -A INPUT -p icmp -m icmp --icmp-type 14 -j ACCEPT 
    -A INPUT -p icmp -m icmp --icmp-type 17 -j ACCEPT 
    -A INPUT -p icmp -m icmp --icmp-type 18 -j ACCEPT 
    -A INPUT -p icmp -m icmp --icmp-type 5 -m limit --limit 2/sec -j ACCEPT 
    -A INPUT -p icmp -m icmp --icmp-type 4 -m limit --limit 2/sec -j ACCEPT 
    -A INPUT -p icmp -j LSI 
    -A INPUT -s 224.0.0.0/8 -j DROP 
    -A INPUT -d 224.0.0.0/8 -j DROP 
    -A INPUT -s 255.255.255.255/32 -j DROP 
    -A INPUT -d 0.0.0.0/32 -j DROP 
    -A INPUT -m state --state INVALID -j DROP 
    -A INPUT -f -m limit --limit 10/min -j LSI 
    -A INPUT -i eth0 -j INBOUND 
    -A INPUT -d 10.1.1.1/32 -i eth1 -j INBOUND 
    -A INPUT -d 187.7.131.36/32 -i eth1 -j INBOUND 
    -A INPUT -d 10.1.1.255/32 -i eth1 -j INBOUND 
    -A INPUT -j LOG_FILTER 
    -A INPUT -j LOG --log-prefix "Unknown Input" --log-level 6 
    -A INPUT -i eth1 -p tcp -m tcp --dport 5432 -j ACCEPT 
    -A FORWARD -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec -j ACCEPT 
    -A FORWARD -p icmp -m icmp --icmp-type 0 -m limit --limit 1/sec -j ACCEPT 
    -A FORWARD -p udp -m udp --dport 33434 -j ACCEPT 
    -A FORWARD -p icmp -m icmp --icmp-type 3 -j ACCEPT 
    -A FORWARD -p icmp -m icmp --icmp-type 3/1 -j ACCEPT 
    -A FORWARD -p icmp -m icmp --icmp-type 17 -j ACCEPT 
    -A FORWARD -p icmp -m icmp --icmp-type 18 -j ACCEPT 
    -A FORWARD -p icmp -m icmp --icmp-type 5 -m limit --limit 2/sec -j ACCEPT 
    -A FORWARD -p icmp -m icmp --icmp-type 4 -m limit --limit 2/sec -j ACCEPT 
    -A FORWARD -p icmp -j LSI 
    -A FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu 
    -A FORWARD -d 10.1.1.49/32 -i eth0 -p tcp -m tcp --dport 1:6889 -j ACCEPT 
    -A FORWARD -d 10.1.1.49/32 -i eth0 -p udp -m udp --dport 1:6889 -j ACCEPT 
    -A FORWARD -i eth1 -j OUTBOUND 
    -A FORWARD -d 10.1.1.0/24 -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT 
    -A FORWARD -d 10.1.1.0/24 -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT 
    -A FORWARD -j LOG_FILTER 
    -A FORWARD -j LOG --log-prefix "Unknown Forward" --log-level 6 
    -A OUTPUT -s 187.7.131.36/32 -d 201.10.120.2/32 -p tcp -m tcp --dport 53 -j ACCEPT 
    -A OUTPUT -s 187.7.131.36/32 -d 201.10.120.2/32 -p udp -m udp --dport 53 -j ACCEPT 
    -A OUTPUT -s 187.7.131.36/32 -d 201.10.128.3/32 -p tcp -m tcp --dport 53 -j ACCEPT 
    -A OUTPUT -s 187.7.131.36/32 -d 201.10.128.3/32 -p udp -m udp --dport 53 -j ACCEPT 
    -A OUTPUT -o lo -j ACCEPT 
    -A OUTPUT -s 224.0.0.0/8 -j DROP 
    -A OUTPUT -d 224.0.0.0/8 -j DROP 
    -A OUTPUT -s 255.255.255.255/32 -j DROP 
    -A OUTPUT -d 0.0.0.0/32 -j DROP 
    -A OUTPUT -m state --state INVALID -j DROP 
    -A OUTPUT -o eth0 -j OUTBOUND 
    -A OUTPUT -o eth1 -j OUTBOUND 
    -A OUTPUT -j LOG_FILTER 
    -A OUTPUT -j LOG --log-prefix "Unknown Output" --log-level 6 
    -A INBOUND -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT 
    -A INBOUND -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT 
    -A INBOUND -s 10.1.1.0/24 -j ACCEPT 
    -A INBOUND -p tcp -m tcp --dport 22 -j ACCEPT 
    -A INBOUND -p udp -m udp --dport 22 -j ACCEPT 
    -A INBOUND -s 10.1.1.0/24 -p tcp -m tcp --dport 53 -j ACCEPT 
    -A INBOUND -s 10.1.1.0/24 -p udp -m udp --dport 53 -j ACCEPT 
    -A INBOUND -j LSI 
    -A LSI -j LOG_FILTER 
    -A LSI -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -m limit --limit 1/sec -j LOG --log-prefix "Inbound " --log-level 6 
    -A LSI -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK SYN -j DROP 
    -A LSI -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -m limit --limit 1/sec -j LOG --log-prefix "Inbound " --log-level 6 
    -A LSI -p tcp -m tcp --tcp-flags FIN,SYN,RST,ACK RST -j DROP 
    -A LSI -p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec -j LOG --log-prefix "Inbound " --log-level 6 
    -A LSI -p icmp -m icmp --icmp-type 8 -j DROP 
    -A LSI -m limit --limit 5/sec -j LOG --log-prefix "Inbound " --log-level 6 
    -A LSI -j DROP 
    -A LSO -j LOG_FILTER 
    -A LSO -m limit --limit 5/sec -j LOG --log-prefix "Outbound " --log-level 6 
    -A LSO -j REJECT --reject-with icmp-port-unreachable 
    -A OUTBOUND -p icmp -j ACCEPT 
    -A OUTBOUND -p tcp -m state --state RELATED,ESTABLISHED -j ACCEPT 
    -A OUTBOUND -p udp -m state --state RELATED,ESTABLISHED -j ACCEPT 
    -A OUTBOUND -j ACCEPT 
    COMMIT
    # Completed on Mon Feb 28 18:06:02 2011

    Pelo jeito você conhece PG. No meu micro eu tenho uma base de dados de teste. Só que para acessá-la eu tenho que desligar o Firewall do windows. Mesmo que eu libere a porta 5432 ele não acessa. Saberia me dizer o que mais eu tenho que liberar?

    Obrigado pela sua paciência!

  7. #7

    Padrão Re: Regras de NAT para acesso a 2º servidor

    add essa regra no seu firewall de onde ta saindo a conexao

    iptables -A FORWARD -o Placa-de-rede-internet -p TCP --dport 5432 -j ACCEPT

    Como seu server esta em outra maquina vc devera fazer um redirecionamento até ela.

    colocar a configuracao no servidor de firewall onde esta o banco.

    ### libera acesso ao Postgres PORTA 5432
    echo "1" > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A PREROUTING -p tcp -i $NET --dport 5432 -j DNAT --to ipdoservidordebanco
    iptables -t nat -A POSTROUTING -d ipdoservidordebanco -j SNAT --to ipdofirewall



    Qual ao firewall do windows tem que colocar nas excecoes, add programa.
    Última edição por sowbra; 28-02-2011 às 18:41.

  8. #8

    Padrão Re: Regras de NAT para acesso a 2º servidor

    Inseri o comando e continuo sem conseguir acessar o PG via IP externo.


  9. #9

    Padrão Re: Regras de NAT para acesso a 2º servidor

    O PG está num servidor Windows Server 2008.

    Os comandos

    echo "1" > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A PREROUTING -p tcp -i $NET --dport 5432 -j DNAT --to ipdoservidordebanco
    iptables -t nat -A POSTROUTING -d ipdoservidordebanco -j SNAT --to ipdofirewall

    dever ser no meu server de internet (linux)?

  10. #10

    Padrão Re: Regras de NAT para acesso a 2º servidor

    o comando

    iptables -t nat -A PREROUTING -p tcp -i $NET --dport 5432 -j DNAT --to ipdoservidordebanco

    dá erro de argumento no --dport 5432

  11. #11

    Padrão Re: Regras de NAT para acesso a 2º servidor

    esse comando deve ser executado no seu servidor linux que esta na rede onde se encontrar o servidor windows

    ele vai pegar os pacotes direcionados a porta 5432 e redirecionar ao seu servidor de BD.

    quanto ao $NET é a placa de rede no meu caso a (eth0) onde esta ligado o cabo do modem adsl..


    Troca a onde esta $NET pela sua placa de rede (eth0, eth1, eth2, etc...)

  12. #12

    Padrão Re: Regras de NAT para acesso a 2º servidor

    Obrigado pla resposta e pela paciência.

    Fiz e refiz as linhas que vc especificou.

    Agora estou tentando conectar com o banco através do meu IP externo (187.7.131.36) para ser redirecionado para meu IP interno (10.1.1.49). Mas a conexão é recusada!

    Tem amis alguma idéia do que posso fazer?

  13. #13

    Padrão Re: Regras de NAT para acesso a 2º servidor

    Como que ta configurado teu modem??

    Caso ele tenha suporte a DMZ deve ativa-lo e apontar para o ip interno no seu firewall

    ex: IP externo (187.7.131.36) IP interno do firewall 10.1.1.253, que o firewal vai tratar sua requisicao

    faz o seguinte "apaga" as suas configurações e coloca essa aqui.. .so para testar o acesso remoto, caso de certo, adapta ela no seu firewall

    ## INDICAR O INICIO/REINICIO DO FIREWALL
    case $1 in
    start|restart)
    echo "Firewall - By SOWBRA"

    modprobe ip_tables
    modprobe iptable_nat
    modprobe iptable_filter
    modprobe ip_conntrack
    modprobe ip_nat_ftp
    modprobe ip_conntrack_ftp
    modprobe ipt_MASQUERADE
    modprobe ipt_LOG

    iptables -P INPUT ACCEPT
    iptables -P FORWARD ACCEPT
    iptables -P OUTPUT ACCEPT
    iptables -t nat -P PREROUTING ACCEPT
    iptables -t nat -P POSTROUTING ACCEPT
    iptables -F
    iptables -t nat -F

    ## COMPARTILHAR CONEXAO DE INTERNET

    iptables -t nat -A POSTROUTING -o PLACADEREDEEXTERNA -j MASQUERADE

    ## ATIVAR ROTEAMENTO
    echo "1" > /proc/sys/net/ipv4/ip_forward

    ## LIBERAR A PROPRIA MAQUINA LOOPBACK PARA ACESSO A INTERNET
    iptables -A INPUT -i lo -j ACCEPT


    ### libera acesso ao Postgres PORTA 5432
    echo "1" > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A PREROUTING -p tcp -i PLACADEREDEEXTERNA --dport 5432 -j DNAT --to ipdoservidordebanco
    iptables -t nat -A POSTROUTING -d ipdoservidordebanco -j SNAT --to ipdofirewall





    ;;
    stop)
    echo "CUIDADO SUA MAQUINA ESTA SEM FIREWALL - ATENCAO!!!..."

    ;;
    *)
    echo "Digite start, restart ou stop para ativar/reativar/desativar"
    exit 1
    ;;
    esac


    Qualquer duvida posta ai!!!!

  14. #14

    Padrão Re: Regras de NAT para acesso a 2º servidor

    Está ocorrendoo seguinte erro:

    Código :
    root@serverlinux:/tmp# ./firewall start
    '/firewall: linha 2: erro de sintaxe próximo do `token' não esperado `in
    '/firewall: linha 2: `case $1 in

  15. #15

    Padrão Re: Regras de NAT para acesso a 2º servidor

    Quanto ao modem não sei te dizer, é um modem da OI e não tenho acesso à ele!

  16. #16

    Padrão Re: Regras de NAT para acesso a 2º servidor

    Cola ai o que vc colocou no ./firewall

    Quanto ao modem, ai que deve ta o pulo do gato sem acesso fica dificil saber... ele pode ta rejeitando sua conexao, qual o modelo dele? vc nao tem acesso pq?

  17. #17

    Padrão Re: Regras de NAT para acesso a 2º servidor

    Copiei e colei o que vc colocou, só alterei os itens em negrito:

    Código :
    ## INDICAR O INICIO/REINICIO DO FIREWALL
    case $1 in
    start|restart)
    echo "Firewall - By SOWBRA"
     
    modprobe ip_tables
    modprobe iptable_nat
    modprobe iptable_filter
    modprobe ip_conntrack
    modprobe ip_nat_ftp
    modprobe ip_conntrack_ftp
    modprobe ipt_MASQUERADE
    modprobe ipt_LOG
     
    iptables -P INPUT ACCEPT
    iptables -P FORWARD ACCEPT
    iptables -P OUTPUT ACCEPT
    iptables -t nat -P PREROUTING ACCEPT
    iptables -t nat -P POSTROUTING ACCEPT
    iptables -F
    iptables -t nat -F
     
    ## COMPARTILHAR CONEXAO DE INTERNET
    iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
     
    ## ATIVAR ROTEAMENTO
    echo "1" > /proc/sys/net/ipv4/ip_forward
     
    ## LIBERAR A PROPRIA MAQUINA LOOPBACK PARA ACESSO A INTERNET
    iptables -A INPUT -i lo -j ACCEPT
     
    ### libera acesso ao Postgres PORTA 5432
    echo "1" > /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 5432 -j DNAT --to 10.1.1.49
    iptables -t nat -A POSTROUTING -d 10.1.1.49 -j SNAT --to 187.7.131.36
    *
     
    ;;
    stop)
    echo "CUIDADO SUA MAQUINA ESTA SEM FIREWALL - ATENCAO!!!..."
     
    ;;
    *)
    echo "Digite start, restart ou stop para ativar/reativar/desativar"
    exit 1
    ;;
    esac

    O modem não tenho acesso porque não sei a senha dele. Na verdade nem tentei ter acesso à ele!
    Ele é um Digitel Netrouter 2G 3211.

  18. #18

    Padrão Re: Regras de NAT para acesso a 2º servidor

    da uma olhada se eh esse seu modem

    ftp://ftp.digitel.com.br/NRX/205.1660.51-Z.pdf

    vc vai ter que acessar ele e configurar uma rota de ip externo para o ip interno (firewall) sem isso nao tem como fazer o acesso externo.

    Por padrao ele pode ta bloqueando as portas, tem q olhar diretinho o modem mesmo, senao vai ficar quebrando a cabeca no linux e o problema esta no modem.


    Caso queira um modem de facil configuracao sugiro adquirir o thonson tg 508.

    qual a distribuicao que vc usa do linux??

    para editar o arquivo . firewall vc usou, ex:

    vim /etc/init.d/firewall ?

    depois deu as permissoes necessaria para que o arquivo torne-se executavel?

    chmod +x /etc/init.d/firewall

    ????

  19. #19

    Padrão Re: Regras de NAT para acesso a 2º servidor

    Na verdade andei pesquisando e ligando pra OI. Eles NÃO me dão acesso ao modem!

  20. #20

    Padrão Re: Regras de NAT para acesso a 2º servidor

    Sim, dei a permissão para rodar ele!
    Não gosto do vim! Me perco demais nas teclas de atalho dele!
    Utilizo o JOE que tem as teclas de atalho do antigo wordstar que eu ainda lembro! hehehehehe
    Sowbra, eu consigo acessar o windows remotamente, então não acho que o modem está bloqueando algo!
    Mas consegui acesso à ele! Pessoal da OI não libera, mas deixa a senha e ID padrão nele!

    Em NAT o modem tem:
    STATUS PURGE

    Em FIREWALL o modem tem:
    Applying to:INPUT
    POLICY ACCEPT
    CLAMPTOMTU FALSE
    Applying to:OUTPUT
    POLICY ACCEPT
    CLAMPTOMTU FALSE
    Applying to:FORWARD
    POLICY ACCEPT
    CLAMPTOMTU FALSE
    Applying to:QOS
    STATUS PURGE