Porównaj ceny domen i usług IT, sprzedawców z całego świata

Jak mogę uzyskać dostęp do mojego WAN IP od wewnątrz, zgodnie z moimi istniejącymi regułami przekierowania portów iptables?


Mam ostatnio skonfigurowane IPTABLES na moim serwerze Debian Squeeze i mam maskowanie IP i przekierowanie portów działające pomyślnie, jednak jeśli wprowadzę nazwę hosta WAN IP lub DynDNS w ciągu adresu URL, pojawia się błąd połączenia. Gdybym poszedł, z poprzednimi routerami konsumenckimi

http:// [myhostname]
http://[myhostname], pobierze 10.0.0.3:80 jak poniżej. Działa to zewnętrznie (testowane na telefonie 3G), ale nie wewnętrznie (przy użyciu dowolnej wewnętrznej przeglądarki). To samo dla wszystkich przekierowanych portów. Staram się, aby przekazywanie portów działało również wewnętrznie.
Jeśli ktoś zna odpowiednie zaklęcia, bylibyśmy bardzo wdzięczni. Próbowałem googlować, ale nie jestem pewien, czy poprawnie podchodzę do wyszukiwanych haseł.
Moja konfiguracja wygląda następująco:
# 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

Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Nie jestem pewien, czy rozumiem znaczenie tego. Zazwyczaj ten typ dostosowywania jest używany, jeśli masz zasoby wewnętrzne, które muszą być dostępne zarówno wewnętrznie, jak i zewnętrznie. Twój dostęp zewnętrzny jest zapewniany przez przekierowanie portów i potwierdziłeś, że działa dobrze.
Dla dostępu wewnętrznego lepiej jest używać podzielonego DNS. Jest to ustawienie, w którym wewnętrzny serwer DNS rozpoznaje te same nazwy, co publiczny DNS, ale na wewnętrzne adresy IP. Można to osiągnąć za pomocą oddzielnych serwerów DNS lub jednego serwera DNS z oddzielnymi widokami dla dostępu wewnętrznego i zewnętrznego.
Czy to rozwiązałoby Twój problem?
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

To nie zadziała. Przyczyna jest związana ze sposobem, w jaki pakiet przechodzi przez tabele netfilter/xtables i kiedy występuje routing.
  • Pakiet jest zawarty w interfejsie
  • Pakiet otrzymał DNAT-ed, co nie ma miejsca w przypadku pakietów pochodzących z eth0.
  • Pakiet jest trasowany. W tym przypadku jest kierowany do interfejsu ppp0
  • Ponieważ pakiet jest przeznaczony dla routera, jest przetwarzany przez łańcuch INPUT
  • Pakiet przechodzi przez łańcuch INPUT, jest przetwarzany przez stos TCP
  • Lokalny port 80 nie jest otwarty; pakiet porzucony

Jak widać, DNAT występuje zbyt wcześnie w łańcuchu zdarzeń.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się