openVPN сервер под управлением CentOS

Будем устанавливать и настроивать openvpn сервер на CentOS

Сначала необходимо проверить наличе tun устройства, так как на VPS его может не быть

вывод должен быть такой

Если вы не обнаружили файл устройства tun, обратитесь к своему провайдеру.

В стандартных репозитория CentOS и RHEL пакета openvpn нет. Поэтому сначала подключите репозитрий rpmforge

  1. Устанавливаем openvpn

    openvpn CentOS
  2. Переходим директорию openvpn
  3. Скопируем для удобства управляющие скрипты
  4. Редактируем файл vars, меняем

    На

    Далее меняем следуюшие значения на свои

  5. Даем управляющим скриптам права на исполнение

  6. Перечитываем значения переменных

  7. Генерируем мастер-сертификат, ключ Диффи-Хеллмана, сертификат и ключ сервера

  8. Копируем директорию с ключами

  9. Создаем файл /etc/openvpn/server.conf следующиего содержания

  10. Запускаем туннель

    В случае возникновения ошибок изучайте журнал /var/log/openvpn.log

  11. Добавляем сервис openvpn в автогзагрузку

  12. На данный момент у вас должен появится активный интерфейс tun0 и маршруты в ваши подсети, а также сервис openvpn должен слушать по указанному порту. Проверить можно следующими командами

  13. Генерируем ключи и сертификаты для клиентов

    Не забудьте их скопировать из /etc/openvpn/easy-rsa/2.0/keys в /etc/openvpn/keys иначе вы рискуете их потерять после выполнения скрипта ./clean-all

  14. Для маршрутизации между клиентскими сетями необходимо в папке /etc/openvpn/ccd создать файлы клиентов следующего содержания

    Имя файла должно совпадать с ключем и сертификатом

  15. Конфигурационный файла клиента /etc/openvpn/client.conf

  16. Открываем порт на iptables и пробуем подключиться

    В моем случае правило необходимо было добавить под номером 5. Подробнее о IPTABLES можно почитать здесь.

  17. Теперь нам необходимо разрешить форвардинг. В файле /etc/sysctl.conf меняем

    НА

    Чтобы изменения вступили в силу

    Проверяем

    Разрешаем форвардинг на файерволе

    Приблизительно так должен выглядеть вывод iptables -L -v- n

  18. Для того, чтобы правила iptables применялись после перезагрузки необходимо выполнить