воскресенье, 25 июля 2010 г.

OpenVPN для доступа в Internet

Иногда бывает, что нужно сделать так, чтобы пользователь, после подключения к VPN, смог бы использовать сервер как шлюз по-умолчанию, то есть выходил в интернет через него. Даже если у пользователя уже есть шлюз по-умолчанию. Проблема тут раньше возникала такая: как сделать так, чтобы после установки шлюза по-умолчанию, инкапсулированные в VPN пакеты могли достигнуть этого самого VPN-сервера? Конечно, если все пользователи находятся в известных условиях, можно было накручивать кучу скриптов, которые бы устанаваливали маршрут до VPN-сервера через старый шлюз по-умолчанию, но вот в OpenVPN появилась опция, которая позволяет автоматически настроить маршрутизацию как надо:
1. Прописать маршрут к VPN-серверу через текущий шлюз по-умолчанию.
2. Установить новый шлюз по-умолчанию через VPN-сервер
3. После окончания работы с VPN вернуть все назад.


Опция называется redirect-gateway. Если вы и правда решили раздать интернет через OpenVPN, то вот рецепт :)
В конфигурационном файле клиента добавляем:
redirect-gateway
dhcp-option DNS <новый DNS-сервер>

На сервере настраиваем, соответственно, ip forwarding + NAT:
/etc/sysctl.conf:
net.ipv4.ip_forward = 1

# sysctl -p

# iptables -t nat -I POSTROUTING -s $VPN_IP_RANGE -o $INET_IFACE -j SNAT --to-source $SERVER_EXT_IP

И вуаля, оно работает. По крайней мере для клиентов с Windows XP. Другие не тестировал


Комментариев нет:

Отправить комментарий