Назад | Перейти на главную страницу

Использование iptables для NAT VPN-клиентов в Интернет

Я установил работающие сервер и клиент OpenVPN и, по-видимому, могу нормально подключаться друг к другу.

Я пытаюсь направить весь клиентский трафик (Интернет + DNS) через VPN-сервер, но он не работает. В руководстве по OpenVPN я делаю:

sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

И это явно ничего не делает. После подключения к VPN клиент может нормально пинговать сервер, но не имеет абсолютно никакого доступа к Интернету.

Делать

sudo iptables -S или sudo iptables -L

не похоже, что что-то изменилось .. Я изменил файлы конфигурации сервера и клиента в соответствии с инструкциями руководства.

Любая помощь была бы замечательной, спасибо.

Обновить

Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
MASQUERADE  all  --  10.8.0.0/24          0.0.0.0/0           
MASQUERADE  all  --  10.8.0.0/24          0.0.0.0/0           
MASQUERADE  all  --  10.8.0.0/24          0.0.0.0/0           
MASQUERADE  all  --  10.8.0.0/24          0.0.0.0/0    

После разговора с OP мы пришли к выводу, что это проблема с конфигурацией DNS, когда OpenVPN проталкивал «10.8.0.1» в качестве DNS-сервера через DHCP. Поскольку на VPN-сервере не было запущенного сервера имен, клиент не мог разрешить удаленные узлы.

Установка «8.8.8.8» в качестве DNS-сервера через DHCP OpenVPN решила проблему.

Нам также нужно было включить ip_forward.

OP необходимо добавить в /etc/sysctl.conf следующее:

net.ipv4.ip_forward = 1

(или раскомментируйте, если строчка уже есть)