Вот здесь я обещал, что расскажу поподробнее о настройке OpenVPN. Пришло время выполнить это обещание.
VPN и OpenVPN – это такая замечательная штука, которая позволяет объединить несколько компьютеров в одну общую сеть через открытые каналы; и при этом обеспечивается высокая безопасность соединения – за счет шифрования передаваемых данных.
Основное преимущество VPN соединения – это простота настройки у клиентов. Оно настраивается буквальной в 3-4 клика мыши под Windows XP; поэтому в компаниях, которые могут предоставлять доступ в свою корпоративную сеть, предпочитают давать своим сотрудникам именно VPN соединения.
Минусов у VPN соединения тоже достаточно. Например, оно не всегда работает при соединении через GPRS (проверено на МТС, без услуги Реальный IP Адрес VPN не работает).
Для себя я предпочел настроить OpenVPN соединение. На мой взгляд, оно удобнее – во-первых, оно позволяет не только шифровать трафик, но и неплохо его сжимать. Во вторых, я сам могу решать, по какому соединению будет работать OpenVPN (TCP или UDP), и могу выбрать тот порт, который мне нужен. В третьих, длину ключа шифрования и периодичность смены ключа я тоже определяю сам. Такая гибкость настройки мне очень нравится.
Недостатки у OpenVPN тоже есть. Наппример, если установлен антивирус Касперского, то OpenVPN может не работать. Меня это не расстраивает, поскольку я в основном использую Linux.
И все-таки мне удалось настроить VPN соединение поверх GPRS от МТС без услуги Реальный IP адрес.
Все оказалось просто, надо сначала установить OpenVPN соединение поверх GPRS, и уже поверх OpenVPN установить соединение VPN. Звучит страшно, выглядит тоже не очень… Но работает.
В этом случае вышестощий провайдер не сможет помешать установке VPN-соединения, поскольку он не будет знать о используемых портах и передаваемых данных.
Дополнено 12.09.2008
Пример конфигурационных файлов OpenVPN:
### Конфигурация клиента
remote xxx.yyy.zzz.aaa 1194
dev tap
ifconfig 192.168.20.11 255.255.255.0
route-gateway 192.168.20.13
redirect-gateway
push “dhcp-option DNS 192.168.20.13″
secret key.txt
comp-lzo
### Конфигурация сервера
dev tap
ifconfig 192.168.20.13 255.255.255.0
push “redirect-gateway def1″
push “dhcp-option DNS xxx.yyy.zzz.aaa”
secret key.txt
comp-lzo
Ключ key.txt надо сгенерировать самостоятельно, например, на сервере, и передать по безопасному каналу клиенту (через sftp или scp). После этого надо перезапустить OpenVPN на сервере и на клиенте, все будет работать.
Надеюсь, мой опыт окажется полезным и для Вас.
Здорово, только где сам рассказ о настройке, о клиенте для этого?
Клиент и сервер один и тот же, openvpn 2.0.9; забрать его можно отсюда совершенно бесплатно; клиенты есть и под нормальные операционные системы, и даже под винду.
Я делал настройку только для себя (для одного клиента), поэтому мне не было смысла заморачиваться с генерацией SSL-сертификатов; мне было достаточно только сгенерировать ключ шифрования.
После создания ключа на сервере, я его с помощью sftp перенес на клиента.
В конфигурационном файле указал использование этого ключа, сжатие данных.
В настройках клиента еще указал перенаправление всего трафика с локальной машины на созданный туннель (опция настройки redirect-gateway). Если ее не указать, то трафик до сервера VPN будет зашифрованным, а остальной трафик пойдет по старым маршрутам.
В общем, если интересно, я готов показать готовый пример настройки сервера и клиента OpenVPN.
Очень интересно было бы увидеть готовый пример настройки клиента и сервера…
Дополнил свой пост, теперь там есть пример конфигурационных файлов сервера и клиента.
Мы решили просто использовать кучу туннелей по типу точка-точка (со статическим ключом)…
RSA и сертификаты не любим в принципе.
Симметричное шифрование как-то надёжнее, да и проще в настройке.