Como faço para acessar meu IP da WAN internamente de acordo com as regras de encaminhamento de porta do iptables? [duplicado]

1

Eu tenho IPTABLES recentemente configurado no meu servidor Debian Squeeze e tenho mascaramento de IP e encaminhamento de porta trabalhando com sucesso, no entanto, se eu digitar na barra de URL meu IP WAN ou DynDNS, eu recebo um erro de conexão. Com os roteadores anteriores do consumidor, se eu tivesse ido para link , ele carregaria 10.0.0.3:80 conforme especificado abaixo. Isso funciona externamente (testado usando um telefone 3G), mas não internamente (usando qualquer navegador interno). Isso é o mesmo para todas as portas encaminhadas. Estou tentando fazer com que o encaminhamento de porta funcione internamente também.

Se alguém souber o (s) encantamento (s) correto (s) para isso, será muito apreciado. Eu tentei pesquisar no Google, mas não tenho certeza sobre os termos de pesquisa corretos para o problema.

Minha configuração é a seguinte:

# Generated by iptables-save v1.4.8 on Thu Apr 14 15:58:27 2011
*mangle
:PREROUTING ACCEPT [1216168:676166344]
:INPUT ACCEPT [2375:260404]
:FORWARD ACCEPT [1213765:675875465]
:OUTPUT ACCEPT [1930:203384]
:POSTROUTING ACCEPT [1215695:676078849]
-A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:65495 -j TCPMSS --clamp-mss-to-pmtu 
COMMIT
# Completed on Thu Apr 14 15:58:27 2011
# Generated by iptables-save v1.4.8 on Thu Apr 14 15:58:27 2011
*filter
:INPUT ACCEPT [2375:260404]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [1930:203384]
-A FORWARD -i ppp0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -i eth0 -o ppp0 -j ACCEPT 
-A FORWARD -d 10.0.0.8/32 -p tcp -m tcp --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -d 10.0.0.3/32 -p tcp -m tcp --dport 22 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -d 10.0.0.8/32 -p tcp -m tcp --dport 1723 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -d 10.0.0.8/32 -p udp -m udp --dport 1723 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -d 10.0.0.3/32 -p tcp -m tcp --dport 21 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -d 10.0.0.3/32 -p tcp -m tcp --dport 45631 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -d 10.0.0.3/32 -p tcp -m tcp --dport 56630 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -d 10.0.0.3/32 -p udp -m udp --dport 56630 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT 
COMMIT
# Completed on Thu Apr 14 15:58:27 2011
# Generated by iptables-save v1.4.8 on Thu Apr 14 15:58:27 2011
*nat
:PREROUTING ACCEPT [5529:468229]
:POSTROUTING ACCEPT [2335:258730]
:OUTPUT ACCEPT [21:1367]
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.0.0.8:80 
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 22 -j DNAT --to-destination 10.0.0.3:22 
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 1723 -j DNAT --to-destination 10.0.0.8:1723 
-A PREROUTING -i ppp0 -p udp -m udp --dport 1723 -j DNAT --to-destination 10.0.0.8:1723 
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 21 -j DNAT --to-destination 10.0.0.3:21 
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 45631 -j DNAT --to-destination 10.0.0.3:45631 
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 56630 -j DNAT --to-destination 10.0.0.3:56630 
-A PREROUTING -i ppp0 -p udp -m udp --dport 56630 -j DNAT --to-destination 10.0.0.3:56630 
-A PREROUTING -i ppp0 -p tcp -m tcp --dport 443 -j DNAT --to-destination 10.0.0.3:22 
-A POSTROUTING -o ppp0 -j MASQUERADE 
COMMIT
# Completed on Thu Apr 14 15:58:27 2011
    
por Michael 14.04.2011 / 08:05

2 respostas

3

Não tenho certeza se posso ver o ponto disso. Normalmente, esse tipo de configuração é usado se você tiver um recurso interno que precisa ser acessível internamente e externamente. Seu acesso externo é obtido pelo encaminhamento de porta e você confirmou que isso está funcionando bem.

Para acesso interno, você deve usar o DNS dividido. Esta é uma configuração na qual o seu servidor DNS interno resolve os mesmos nomes que o seu DNS público, mas para endereços IP internos. Isso pode ser feito usando servidores DNS separados ou um servidor DNS com exibições separadas para acesso interno e externo.

Isso resolveria seu problema?

    
por 14.04.2011 / 16:51
0

Isso não vai funcionar. O motivo tem a ver com como um pacote percorre as tabelas netfilter / xtables e quando o roteamento ocorre.

  1. O pacote entra na interface
  2. O Packet recebeu DNAT-ed, o que, para pacotes vindos da eth0, não acontece
  3. O pacote foi encaminhado. Nesse caso, ele é roteado para a interface ppp0
  4. Como o pacote é destinado ao roteador, ele é manipulado pela cadeia INPUT
  5. O pacote passa a cadeia INPUT, é manipulado pela pilha TCP
  6. A porta local 80 não está aberta; pacote é descartado

Como você pode ver, o DNAT acontece muito cedo na cadeia de eventos.

    
por 15.04.2011 / 02:30