Obecnie mam urządzenie NAS działające pod portem 80. Aby uzyskać dostęp do NAS z zewnątrz, zamapowałem port 8080 na port 80 na serwerze NAS w następujący sposób:
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 10.32.25.2:80
To działa jak urok. Działa to jednak tylko wtedy, gdy uzyskuję dostęp do strony internetowej z zewnątrz sieci (w pracy, w innym domu itp.). Więc kiedy piszę mywebsite.com:8080
, IPTables wykonują zadanie poprawnie i wszystko działa dobrze.
Problem polega na tym, jak mogę przekierować ten port z wnętrza sieci? Moja nazwa domeny mywebsite.com
wskazuje na mój router (mój serwer linux) od wewnątrz (10.32.25.1), ale chcę przekierować port 8080 do portu 80 na 10.32.25.2 od wewnątrz.
Jakieś wskazówki?
Edytuj nr 1
Próbując pomóc w rozwiązaniu tego problemu, zestawiłem ten schemat. Zaktualizuj, jeśli jest to niepoprawne lub wprowadzające w błąd to, czego szukasz.
iptables
| .---------------.
.-,( ),-. v port 80 |
.-( )-. port 8080________ | |
( internet )------------>[_...__...°]------------->| NAS |
'-( ).-' 10.32.25.2 ^ 10.32.25.1 | |
'-.( ).-' | | |
| '---------------'
|
|
__ _
[__]|=|
/::/|_|
10.32.25.1:8080
przekierowanie do 10.32.25.2:80
. Moja powyższa reguła działa z zewnątrz, ale nie z wnętrza mojej sieci. Więc jeśli jestem w biurze, mogę uzyskać dostęp do mojego serwera NAS ze strony internetowej.com:8080 i jest on całkowicie przejrzysty. Z mojego domu website.com:8080 wskazuje na 10.32.25.1, ponieważ jest to mój router aka serwer Linux. Chcę przekierować port 8080 do NAS również na porcie 80, ale znowu w przejrzysty sposób.
eth0 10.32.25.2
tak”, abyśmy mogli napisać użycie iptables na podstawie interfejsu przychodzącego