Настройка OpenVPN Debian с шифрованием

Оглавление

Рассмотрим процесс установки OpenVPN на примере дистрибутива Debian 8.2. Задача состоит том, чтобы использовать сервер на базе OpenVPN в качестве шлюза для выхода в интернет. В результате мы получаем белый ip, можем обойти ограничения провайдера и дополнительно сжать и зашифровать весть трафик, который идет через сервер.

Я выбрал OpenVPN благодаря его надёжности и безопасности. По сравнению с аналогичными туннельными протоколами, OpenVPN абсолютно не прихотлив к способу доступа к сети интернет. При необходимости, клиент OpenVPN можно настроить даже через HTTP прокси-сервер.

Для работы OpenVPN необходима поддержка TUN/TAP интерфейса на сервере. Как правило, с этим не должно возникнуть проблем при использовании физической машины или виртуализации KVM. А вот в случае использования OpenVZ, необходимо активировать поддержку TUN/TAP в настройках контейнера. Чтобы проверить, что система поддерживает TUN-интерфейс, необходимо выполнить команду:

ls l /dev/net/tun
crw-rw-rw 1 root root 10, 200 Nov 19 23:02 /dev/net/tun

Установим OpenVPN на сервере:

apt-get install openvpn easy-rsa

В качестве способа авторизации клиента на сервере мы будем использовать аутентификацию по ключу. Для этого создаём директорию в которую будут скопированы сгенерированные ключи:

Копируем в нее утилиты и конфиги для работы с ключами:

Переходим в директорию:

При необходимости, в файле vars можно настроить параметры ключей и сертификатов. Данный пункт не обязательный и при желании его можно смело пропустить.

Меняем следующие строки на свои значения:

После правки vars необходимо инициировать переменные:

Очищаем каталог keys/server от старых сертификатов и ключей:

Создаем корневой сертификат:

В квадратных скобках указаны значения по умолчанию, которые были заданы в файле vars. Если вы хотите оставить значения без изменений, нужно просто нажимать клавишу «Ввод».

Далее генерируем сертификаты сервера и клиента:

Для каждого клиента нужно сгенерировать отдельные ключи.

Генерируем ключ Диффи — Хеллмана:

Cоздаем ключ для tls-аутификации:

Все сгенерированные сертификаты и ключи находятся в директории:

Копируем сертификаты и ключи сервера в директорию OpenVPN:

Для настройки клиента OpenVPN, необходимо скопировать ключи и сертификаты из списка ниже:

  • client1.crt
  • client1.key
  • ca.crt
  • ta.key

На этом этапе установка OpenVPN закончена. Теперь выполним настройку сервера OpenVPN.

Настройка сервера OpenVPN

Копируем и распаковываем пример конфигурационного файла в содержимое директории OpenVPN:

В зависимости от наших потребностей, изменяем настройки сервера OpenVPN:

Пример настройки OpenVPN:

Создадим директорию для клиентских настроек:

После завершения настройки OpenVPN, перезагружаем сервер:

В случае успешного запуска OpenVPN в системе должен появится новый tun0 интерфейс:

Это означает, что OpenVPN сервер запущен. В случае проблем с запуском OpenVPN, используем лог-файл:

Настройки маршрутизации для клиентов OpenVPN

После подключения клиента к серверу OpenVPN, шлюз будет изменен на IP виртуальной сети сервера. Если клиент OpenVPN находится в локальной сети, вам необходимо дополнительно настроить маршрутизацию для доступа к ресурсам внутри сети. Для этого создаем файл в каталоге ccd с тем же именем ключа клиента:

Добавим в файл следующие параметры:

Первая строка добавляет маршрут в локальную сеть клиента. Вторая строка задает DNS-сервер, который будет использоваться после подключения.

Включаем NAT на OpenVPN сервере

Чтобы использовать OpenVPN для выхода в интернет, на сервере необходимо задать правило для маршрутизации трафика из сети OpenVPN в локальную сеть или сеть интернет-провайдера.

Включаем поддержку IP forwarding, открываем в файл:

В котором необходимо раскомментировать строку:

Загрузим переменные ядра:

Прописываем правила iptables (при условии, что он установлен). Нужно разрешить клиентам из подсети 10.8.0.0/24 доступ в интернет, разрешить принимать пакеты из интернета и пропустить трафик клиентов через NAT.

Замените eth0 на имя своего внешнего интерфейса. Следует отметить, правило MASQUERADE создает нагрузку на процессор. Поэтому, предпочтительнее использовать SNAT:

Сохраним и добавим правила в автозагрузку:

Настройка клиента OpenVPN

Если OpenVPN не установлен, для установки клиента в Debian или Ubuntu необходимо выполнить команду:

Копируем на компьютер клиента ключи и сертификаты из списка ниже:

  • client1.crt
  • client1.key
  • ca.crt
  • ta.key

Переносим ключи и сертификаты в директорию OpenVPN:

Копируем и распаковываем пример конфигурационного файла в содержимое директории OpenVPN:
Открываем файл в текстовом редакторе:
Добавим в содержимое файла следующие параметры:
Для Windows необходимо положить файл client.ovpn в папку:
Опции протокола, шифрования и сжатия у клиента и сервера должны быть одинаковые. При необходимости вы можете настроить OpenVPN через прокси. На этом настройка OpenVPN в Debian закончена, теперь пора проверить его работоспособность. Перезапустим OpenVPN:

Проверка

Пингуем 10.8.0.1, если пинг проходит, значит все хорошо.

5 1 голос
Рейтинг статьи
Опубликовано в рубрике LinuxTagged
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (2 оценок, среднее: 5,00 из 5)
Загрузка...
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии