Маскарад трафика из определенной исходной подсети в VPN-соединение.
У меня есть сеть IP LAN 192.168.100.0/24. В этой сети имеется множество клиентских ПК с Windows. Шлюз по умолчанию — 192.168.100.1, а сервер Linux (с IP-адресом 192.168.100.200) открывает VPN-соединение Cisco AnyConnect.
На сервере Linux конфигурация локальной сети следующая:
ens33: inet 192.168.100.200 netmask 255.255.255.0 broadcast 192.168.100.255
и конфигурация VPN:
cscotun0: inet 10.180.7.45 netmask 255.255.240.0 destination 10.180.7.45
Я хотел бы настроить iptables на сервере Linux таким образом, чтобы каждый запрос от клиентского ПК, использующего в качестве шлюза 192.168.100.200, был привязан к IP-адресу локальной сети Linux и мог получить доступ к любому адресу, доступному благодаря VPN.
На клиентском ПК я использовал команду:
route add 10.0.0.0 mask 255.0.0.0 192.168.100.200
добавить маршрут, который использует сервер Linux в качестве шлюза для всех IP-адресов в подсети 10.0.0.0/8.
Когда с клиентского ПК я пытаюсь подключиться к определенному IP-адресу в этом диапазоне (например, 10.138.231.52 с портом https):
telnet 10.139.231.52 443
это не работает. Сообщение об ошибке:
Connecting To 10.139.231.52...Could not open connection to the host, on port 443: Connect failed
С сервера Linux та же команда telnet работает отлично.
Фактическая конфигурация iptables на сервере Linux:
iptables -A FORWARD -i ens33 -o cscotun0 -s 192.168.100.0/24 -j ACCEPT
iptables -A FORWARD -i cscotun0 -o ens33 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o cscotun0 -j MASQUERADE
Как я могу изменить конфигурацию iptables, чтобы получить ожидаемый результат?