1.1.1.1 - public IP of VPS
10.1.0.1 - internal IP of OpenVPN server running on VPS
192.168.1.0/24 - local subnet on the VPN client's side
192.168.1.101 - local server running on port TCP 1234
Основное использование VPN/VPS:
- в качестве шлюза для серфинга на конкретных сайтах
- в качестве прокси для клиентов, подключающихся к серверу 192.168.1.101
Текущие настройки iptables:
-A PREROUTING -d 1.1.1.1 -p tcp -m tcp --dport 1234 -j DNAT --to-destination 192.168.1.101:1234
-A POSTROUTING -d 192.168.1.101 -p tcp -m tcp --dport 1234 -j SNAT --to-source 10.1.0.1
-A POSTROUTING -o eth0 -j SNAT --to-source 1.1.1.1
Две первые строки перенаправляют порт TCP 1234 на желаемый пункт назначения, и это работает. Единственная проблема в том, что на целевом сервере я не вижу реального IP-адреса подключенных клиентов. Все клиенты имеют одинаковый IP: 10.1.0.1. Я попытался изменить 2-ю строку на:
-A POSTROUTING -d 192.168.1.101 -p tcp -m tcp --dport 1234 -j SNAT --to-source 1.1.1.1
но тогда клиенты не соединяются вообще. Последняя строка используется, чтобы позволить мне путешествовать по Интернету.
Вопрос: Как правильно установить правила, чтобы я мог видеть реальные IP-адреса подключенных клиентов?