Strona 1 z 2

Jak dostać się na wewnętrzne IP przez zewnętrzny adres

: 23 października 2009, 20:23
autor: pik78
Witam.
Mam problem z połączeniem się z serwerem w sieci lokalnej używajac zewnętrznego IP.
Połączenie z innej sieci do tego serwera nawiązywane jest bez problemu.
Ale od początku. W iptables mam:

Kod: Zaznacz cały

iptables -A FORWARD -p tcp -d WAN_IP --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i eth2 -d WAN_IP --dport 80 -j DNAT --to 192.168.0.247
iptables -A FORWARD -p udp -d WAN_IP --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -p udp -i eth2 -d WAN_IP --dport 80 -j DNAT --to 192.168.0.247
Przekierowanie działa poprawnie, mogę dostać się na serwer 192.168.0.247 z sieci zewnętrznej.
W komputerze w sieci LAN wpisując w przegladarkę:

Kod: Zaznacz cały

http://192.168.0.247
też łączę się poprawnie.
Problem zaczyna się gdy chcę połączyć się z komputera w sieci lokalnej z serwerem 192.168.0.247 używając:

Kod: Zaznacz cały

http://WAN_IP
Da się to jakoś zrobić za pomocą iptables, czy muszę konfigurować serwer dns?
Obecnie mam działającego binda9 jako ,,serwer cachujacy'' i przeczytałem gdzieś że mój problem można naprawić za pomocą jego konfiguracji. Jestem zielony jeśli chodzi o serwery dns więc jeśli da się to zrobić za pomocą iptables.

Z góry dziękuję za cenne wskazówki.

: 23 października 2009, 20:27
autor: winnetou
Dziękuje...

: 24 października 2009, 19:08
autor: Cyphermen
Ja bym dodał jeszcze na jaki port ma iść przekierowanie, czyli dodał do adresu wewnętrznego jeszcze port docelowy, czyli w tym wypadku 80.

: 25 października 2009, 12:33
autor: piroaa
1) Czy jest

Kod: Zaznacz cały

echo "1" > /proc/sys/net/ipv4/ip_forward

2) Spróbuj tak :

Kod: Zaznacz cały

iptables -t nat -I PREROUTING 1 --protocol tcp --destination-port 8080 -j DNAT --to-destination 10.0.0.38:80
Oczywiście do serwera dostaniesz się za pomocą

Kod: Zaznacz cały

IP_ZEWNÊTRZNE:8080
3) Sprawdź czy nie ma jakiś reguł które mogą blokować powyższe.
Pozdrawiam.

: 25 października 2009, 13:18
autor: Cyphermen
Co do pytania 2), właśnie o to mi chodziło, by podał port, na który ma wchodzić na adres wewnętrzny.
Nie musi być 8080 tylko z portu 80 na adres ,,wew:80''. To powinno działać.

: 26 października 2009, 14:09
autor: pik78
1) Jest.
2) Zmieniłem, nie działa.
3) Nie mogę dalej się połączyć.
[url]http://IP_WEW[/url] działa przy łączeniu się z sieci lan gdzie stoi serwer
[url]http://IP_ZEW[/url] działa tylko przy łączeniu się z innej sieci.

Ogólnie przekierowanie portów działa poprawnie poza przypadkiem kiedy próbuję połączyć się z serwerem po zewnętrznym ip z sieci lan. Domyślna polityka (do testów) ACCEPT.

: 26 października 2009, 15:01
autor: mariaczi
Nie dostaniesz się po zewnętrznym IP na maszynę, na która przekierowałeś porty z sieci lokalnej.

: 26 października 2009, 15:05
autor: Cyphermen
Nie rozumiem tego:

Kod: Zaznacz cały

http://IP_ZEW działa tylko przy łączeniu się z innej sieci. 
Jeśli to inna sieć to co przez to rozumiesz? Czy jak przykładowo pójdziesz do kolegi i spróbujesz się połączyć na zew adres serwera to działa czy nie?

[ Dodano: 2009-10-26, 15:06 ]
mariaczi pisze:Nie dostaniesz się po zewnętrznym IP na maszynę, na która przekierowałeś porty z sieci lokalnej.

właśnie dlatego napisałem ze nie rozumiem tego co on napisał z tym zew_addr IP

: 26 października 2009, 19:33
autor: piroaa
No to jeszcze kilka pytań :
1)
2) Zmieniłem, nie działa.
3) Nie mogę dalej się połączyć.
[url]http://IP_WEW[/url] działa przy łączeniu się z sieci lan gdzie stoi serwer
[url]http://IP_ZEW[/url] działa tylko przy łączeniu się z innej sieci.
Czyli po mojemu działa ale skoro twierdzisz że nie to jedziemy dalej :idea:
2) Jakie jest to twoje IP_ZEW bo może ono wcale nie jest publiczne
3) Czy komputer z którego próbujesz się połączyć ma internet od tego samego dostawcy ? bo jeśli tak to być może obie stacje są na innych VLAN-ach i w takim przypadku ISP musi cię puścić przez router brzegowy lub przerzucić do tego samego VLAN-u miałem już taki przypadek.

: 26 października 2009, 19:50
autor: pik78
Pisząc IP_ZEW miałem jak najbardziej na myśli publiczne IP. I właśnie nie mogę połączyć się z tym adresem IP z sieci lan, w której udostępniam internet, właśnie z tego publicznego adresu. Normalnie nie przejmowałbym się sytuacją bo wystarczyłoby mi połączenie z serwerem po adresie z prywatnej puli ale na serwerze jest aplikacja activecollab gdzie na sztywno muszę wpisać jakiś adres IP. Jeśli wybiorę publiczny IP to będąc w pracy nie mam połączenia z programem, jeśli wybiorę prywatny to nie mogę się do niego dostać z domu.