У меня есть VPN-соединение с удаленным сервером. Я хочу, чтобы другие компьютеры могли подключиться к веб-серверу в удаленном месте через разъем VPN. Но я не могу попасть туда, куда хочу.
Вот такая ситуация:
VPN Server (and also the webserver): 10.0.0.2
^
|
Router: 192.168.1.127 & 10.0.0.1 (openssh port is forwarded to 10.0.0.2)
^
|
|
VPN Connector: 192.168.1.148
^
|
Client pc: 192.168.1.129
Также IP-адреса сетей vpn (называемых tun0): VPN-сервер: 192.168.2.1 VPN-коннектор: 192.168.2.6
Итак, если я вхожу в VPN-коннектор и выполняю wget 192.168.2.1:4848, он работает нормально.
Это хорошо, vpn соединение работает.
Но я хочу сделать следующее: на клиентском компьютере перейдите в браузер и перейдите к 192.168.1.148:4848. (вот и разъем vpn). Затем соединитель должен перенаправить его на vpn, показывая мне веб-сервер на 192.168.2.1 (сервер vpn).
Это моя настройка IPTables:
iptables -t nat -A PREROUTING -p tcp -d 192.168.1.148 --dport 4848 -m state --state NEW,ESTABLISHED,RELATED -j DNAT -to 192.168.2.1:4848
iptables -t nat -A POSTROUTING -o tun0 MASQUERADE
Итак, я новичок в iptables, что мне не хватает?
Если я сделаю tcpdump на разъеме vpn на tun0, я могу увидеть, что пакеты проходят через?
13:31:02.850057 IP 192.168.1.129.52870 > 192.168.2.1.1337: Flags [S], seq 538959383, win 8192, options [mss 1460,nop,nop,sackOK], length 0
Но если я делаю tcpdump на сервере VPN на tun0, ничего не происходит.
Мне жаль, что это длинный пост, но что я делаю не так? Пожалуйста помоги!
На своем VPN-коннекторе попробуйте настроить правило маскарада следующим образом
iptables -t nat -I POSTROUTING -o tun0 -j SNAT --to-source 192.168.2.6