OpenVPN – простейшая реализация.
OpenVPN – замечательный продукт сообщества OpenSource, позволяющий легки и просто организовать VPN.
Забудьте про PPTP, L2TP и IpSec, для работы OpenVPN нужен только UDP или TCP порт, что значительно упрощает развертывания VPN для клиентов за NAT.
В короткой статье я опишу, как организовать соединение точка-точка при помощи OpenVPN.
Пакет OpenVPN доступен на всех популярных платформах ОС, процесс установки просто и не требует отдельного описания. Единственное, что нужно упомянуть, для Linux нужна поддержка tun устройств в ядре.
Перейдем сразу к настройке. У нас есть два компьютера, который необходимо соединить туннелем. Пусть первый зовется mars (192.168.0.100) и moon (192.168.100.10). Считаем, что маршрутизация между этими компьютерами есть.
Для mars мы создадим vpn подключение с адресом 10.0.0.1, для moon 10.0.0.2.
root@mars:~# openvpn –remote 192.168.100.10 –dev tun0 \
–ifconfig 10.0.0.1 10.0.0.2
root@moon:~# openvpn –remote 192.168.0.100 –dev tun0 \
–ifconfig 10.0.0.2 10.0.0.1
После какого-то времени должно появится сообщение
Wed Sep 29 15:33:05 2009 Initialization Sequence Completed
Что означает, что туннель был создан. Опция remote задает адрес, к которому будет подключаться openvpn и с которого он готов принимать трафик, dev указывает какой интерфейс использовать для туннеля, последняя опция ifconfig определяет IP адреса для создаваемого туннеля, первый для своей стороны, второй для удаленной.
Теперь можно открыть два новых терминала на mars и moon и проверить, работает ли туннель
user@mars:~$ ping 10.0.0.2
PING 10.0.0.2 (10.0.0.2) 56(84) bytes of data.
64 bytes from 10.0.0.2: icmp_seq=1 ttl=64 time=0.421 ms
…
user@moon:~$ ping 10.0.0.1
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data.
64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.360 ms
…
Следует сразу сказать, что так VPN поднимать не нужно по двум причинам. Во-первых мы не задали опций для шифрования, т.е. весь трафик у нас идет в открытом виде. Во-вторых при закрытии консолей, в которых был запущен openvpn, на любом из компьютеров приведет к закрытию туннеля. Так что такой способ подходит только для тестовых целей.
|
|