И снова о безопасности. VPN vs OpenVPN, и как все это настроить.

Вот здесь я обещал, что расскажу поподробнее о настройке 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 на сервере и на клиенте, все будет работать.

Надеюсь, мой опыт окажется полезным и для Вас.

И снова о безопасности. VPN vs OpenVPN, и как все это настроить.: 5 комментариев

  1. Здорово, только где сам рассказ о настройке, о клиенте для этого? ;)

  2. Клиент и сервер один и тот же, openvpn 2.0.9; забрать его можно отсюда совершенно бесплатно; клиенты есть и под нормальные операционные системы, и даже под винду.
    Я делал настройку только для себя (для одного клиента), поэтому мне не было смысла заморачиваться с генерацией SSL-сертификатов; мне было достаточно только сгенерировать ключ шифрования.
    После создания ключа на сервере, я его с помощью sftp перенес на клиента.
    В конфигурационном файле указал использование этого ключа, сжатие данных.
    В настройках клиента еще указал перенаправление всего трафика с локальной машины на созданный туннель (опция настройки redirect-gateway). Если ее не указать, то трафик до сервера VPN будет зашифрованным, а остальной трафик пойдет по старым маршрутам.
    В общем, если интересно, я готов показать готовый пример настройки сервера и клиента OpenVPN.

  3. Очень интересно было бы увидеть готовый пример настройки клиента и сервера…

  4. Дополнил свой пост, теперь там есть пример конфигурационных файлов сервера и клиента.

  5. Мы решили просто использовать кучу туннелей по типу точка-точка (со статическим ключом)…
    RSA и сертификаты не любим в принципе.
    Симметричное шифрование как-то надёжнее, да и проще в настройке.

Обсуждение закрыто.