OpenVPN: различия между версиями
(Создал статью) |
(описал /etc/sysconfig/openvpn) |
||
Строка 17: | Строка 17: | ||
Каждый файл конфигурации по маске /etc/openvpn/*.conf является конфигурацией отдельного экземпляра демона openvpn. Для имени экземпляра берётся имя файла без суффикса ".conf". | Каждый файл конфигурации по маске /etc/openvpn/*.conf является конфигурацией отдельного экземпляра демона openvpn. Для имени экземпляра берётся имя файла без суффикса ".conf". | ||
Стартовый скрипт /etc/init.d/openvpn может запускать и останавливать как все экземпляры демона, так и каждый по отдельности, | Настройки стартового скрипта располагаются в файле /etc/sysconfig/openvpn, по умолчанию он устанавливает следующие переменные окружения: | ||
CHROOT=yes | |||
OPENVPNUSER=openvpn | |||
OPENVPNGROUP=openvpn | |||
MANUAL="" | |||
Стартовый скрипт /etc/init.d/openvpn может запускать и останавливать как все экземпляры демона, так и каждый по отдельности. Значение переменной MANUAL в /etc/sysconfig/openvpn указывает экземпляры, которые нужно запустить при старте системы (и при запуске стартового скрипта без параметра). | |||
Для ручного запуска (остановки, проверки) одного экземпляра в конце командной строки указываем имя экземпляра. Например: | |||
[root@kuvepus openvpn]# service openvpn start server | [root@kuvepus openvpn]# service openvpn start server | ||
Adjusting environment for openvpn: [ DONE ] | Adjusting environment for openvpn: [ DONE ] | ||
Starting openvpn service: [ DONE ] | Starting openvpn service: [ DONE ] | ||
[root@kuvepus openvpn]# service openvpn status client | [root@kuvepus openvpn]# service openvpn status client-one | ||
openvpn is stopped | openvpn is stopped | ||
Версия от 12:46, 20 июля 2015
Рассмотрена настройка OpenVPN в режиме "server" на сервере Altlinux P7 с SysVinit. В случае systemd есть отличия.
Пакеты
openvpn - полнофункциональное решение VPN на базе SSL
Размещение файлов
- /var/lib/openvpn/ — Корневой каталог после инициализации демона (chroot).
- /var/lib/openvpn/etc/openvpn/ccd — Каталог, в котором размещаются файлы особых параметров для подключаемых клиентов (Client Config Directory).
- /var/lib/openvpn/cache — Рабочий каталог, является текущим для работы демона после инициализации (в него демон записывает файлы, у которых не указан путь - ipp и status).
- /etc/openvpn/ — Каталог с файлами настройки.
- /etc/openvpn/ccd — Символическая ссылка на /var/lib/openvpn/etc/openvpn/ccd (файлы доступны и до, и после chroot).
- /etc/openvpn/keys/ — Каталог для хранения ключей (точнее, для информации ограниченного доступа)
Особенности работы и конфигурации
Каждый файл конфигурации по маске /etc/openvpn/*.conf является конфигурацией отдельного экземпляра демона openvpn. Для имени экземпляра берётся имя файла без суффикса ".conf".
Настройки стартового скрипта располагаются в файле /etc/sysconfig/openvpn, по умолчанию он устанавливает следующие переменные окружения:
CHROOT=yes OPENVPNUSER=openvpn OPENVPNGROUP=openvpn MANUAL=""
Стартовый скрипт /etc/init.d/openvpn может запускать и останавливать как все экземпляры демона, так и каждый по отдельности. Значение переменной MANUAL в /etc/sysconfig/openvpn указывает экземпляры, которые нужно запустить при старте системы (и при запуске стартового скрипта без параметра).
Для ручного запуска (остановки, проверки) одного экземпляра в конце командной строки указываем имя экземпляра. Например:
[root@kuvepus openvpn]# service openvpn start server Adjusting environment for openvpn: [ DONE ] Starting openvpn service: [ DONE ] [root@kuvepus openvpn]# service openvpn status client-one openvpn is stopped
Когда запускаем сервис, демон openvpn запускается, читает файл конфигурации из /etc/openvpn/, читает оттуда же файлы dh, ca и ключи.
Этот каталог доступен демону только при его запуске.
Дальше демон выполняет chroot в /var/lib/openvpn/ и cd в /var/lib/openvpn/cache, понижает привилегии до пользователя openvpn, затем инициализирует работу с сетью.
Таким образом, файл конфигурации размещаем в /etc/openvpn, все ключи размещаем в /etc/openvpn/keys, файлы настроек клиентов - в /etc/openvpn/ccd/ или /var/lib/openvpn/etc/openvpn/ccd/. В файле конфигурации указываем
- ifconfig-pool-persist и status — без полного пути либо с путём /cache/
- ca, dh, cert, key — с путём /etc/openvpn/keys/
- client-config-dir /etc/openvpn/ccd
- Совет.
Если нужны несколько экземпляров сервера openvpn, файлы в параметрах status и ifconfig-pool-persist указывайте разные, например, с именем экземпляра в префиксе.
Пример
$ cat /etc/openvpn/server.conf port 1194 proto udp dev tun ca /etc/openvpn/keys/admin.ca dh /etc/openvpn/keys/dh4096.pem cert /etc/openvpn/keys/server.crt key /etc/openvpn/keys/server.key comp-lzo server 192.168.254.0 255.255.255.0 tls-server cipher AES-256-CBC verb 3 mute 10 keepalive 10 60 user nobody group nogroup persist-key persist-tun status server_status.log ifconfig-pool-persist server_ipp.txt verb 3 management localhost 1194 push "route 192.168.1.0 255.255.255.0" client-config-dir /etc/openvpn/ccd route 192.168.2.0 255.255.255.0 route 192.168.3.0 255.255.255.0