Установка и настройка OpenVPN
Установка и настройка OpenVPN
Нужные для работы пакеты находятся в репозитории EPEL. Если его нет, то подключаем (Centos 6):
Ставим пакеты:
easy-rsa отвечает за генерацию ключей. Если сервер выступает только как клиент VPN, то устанавливать RSA не обязательно.
Настройка сервера
1. Для удобности копируем инструменты генерации ключей в директорию OpenVPN:
2. Переходим в директорию RSA
2.1 Если настройка для себя, то можно изменить такие строчки в файле vars, смотрим файл, в самом конце:
Изменять их совсем не обязательно, на роботу VPN это не повлияет.
2.2 Начинаем генерировать ключи:
2.2 Генерируем ключи і сертификаты сервера (server - имя, которое можно изменить на любое другое) и клиентов (cli1, cli2 - тоже можно любые другие писать). Сгенерированные ключи будут находится в директории keys.
На каждый вопрос с [y/n] отвечаем y.
Генерируем сертификат Диффи-Хеллмана
3. Раздаем ключи:
- Клиентам: ca.crt cli1.crt cli1.key
Например заходим на клиент ubuntu и копируем ключи на нее с нашего сервера:
- Серверу: ca.crt ca.key dh2048.pem server.crt server.key
4. Создаем конфиги.
Шаблоны конфигов с описаниями директив находятся в /usr/share/doc/openvpn-/sample/sample-config-files/*
Пишу 100% рабочий конфиг сервера:
4.1 Если нужно раздавать интернет, то:
- Добавляем в конфиг сервера, мы уже в шаблоне это частично сделали, копируйте шаблон, он рабочий и ничего добавлять уже не нужно:
- В файле /etc/sysctl.conf нужно поставить 1 сдесь:
- Используем изменения без reboot:
4.2 Для выделенных серверов и KVM добавляем правила в iptables та в /etc/rc.local
4.3 Для OpenVZ
4.3.1 Проверим подключен ли модуль TUN:
Если видите такое:
То все good.
Если результат иной, то нужно включить модуль для VPS:
4.3.2 Добавляем правила в iptables та в /etc/rc.local (51.254.225.147 - реальный IP сервера, с которого будет выход в интернет)
4.3.3 Если при добавлении правил nat видает ошибку, то нужно включить модуль на выключенном контейнере:
5. Запускаем сервер:
Если сервер не стартует, то можно посмотреть лог таким образом:
Настройка клиента
1. На *NIX клиент ставится через менеджер пакетов, для windows клиент можно скачать тут:
2. Настройка конфигов:
2.1 На *NIX
Убедитесь, что интерфейс tun0 создан:
2.2 На Windows:
2.3 Рабочий шаблон конфига:
3. Если что-то не работает, то есть такие варианты решения:
На Windows запускать OpenVPN от имени администратора;
Альтернативные правила для iptables:
Альтернативные правила PUSH для server.conf
Открыть на сервере порт 1194: