Установка ОпенВПН со скриптами администрирования ключей(изи-РСА):
apt install openvpn easy-rsa
cd /etc/openvpn/easy-rsa
Инициализация структуры путей к скрипту:
./easyrsa init-pki
Здесь можно настроить под себя конфигурацию(переменные) самой службы.
Далее создание ключей и сертификатов:
./easyrsa build-ca nopass
./easyrsa gen-req vpn-server nopass
./easyrsa sign-req server vpn-server
openvpn --genkey secret pki/ta.key
Пример рабочей конфигурация сервера OpenVPN 2.6:
port 1194 proto udp dev tun ca /etc/openvpn/easy-rsa/pki/ca.crt cert /etc/openvpn/easy-rsa/pki/issued/vpn-server.crt key /etc/openvpn/easy-rsa/pki/private/vpn-server.key dh /etc/openvpn/easy-rsa/pki/dh.pem data-ciphers AES-256-GCM:AES-128-GCM:?CHACHA20-POLY1305:AES-256-CBC topology subnet server 10.77.0.0 255.255.0.0 ifconfig-pool-persist /etc/openvpn/server/ipp.txt client-config-dir /etc/openvpn/server/ccd # Указать шлюз клиентам #push "redirect-gateway def1 bypass-dhcp" #push "redirect-gateway ipv6 bypass-dhcp" #push "route-gateway 192.168.10.1" # Указывать ДСИ #push "dhcp-option DNS 8.8.8.8" #push "dhcp-option DNS 1.1.1.1" keepalive 10 120 persist-tun status /var/log/openvpn/openvpn-status.log log-append /var/log/openvpn/openvpn.log verb 3 explicit-exit-notify 1 tls-auth /etc/openvpn/easy-rsa/pki/ta.key 0
Создать файлы, прописать права доступа. Эти файлы для возможной записи статических адресов(ccd) и журнала авторегистраций(ipp) клиентов:
mkdir /etc/openvpn/server/ccd chmod 755 /etc/openvpn/server/ccd touch /etc/openvpn/server/ipp.txt chmod 755 /etc/openvpn/server/ipp.txt
Разрешаем автоматический старт сервиса OpenVPN:
systemctl enable openvpn-server@server
Запускаем сервер openvpn-server:
systemctl start openvpn-server@server
Перезагрузить службу openvpn:
systemctl restart openvpn-server@server
Основные команды администратора сервера OpenVPN для управления клиентами:
(перейти в папку со скриптом: cd /etc/openvpn/easy-rsa)
1. Создать сертификат клиенту:
./easyrsa.real build-client-full client1 nopass
Срок действия сертификата можно менять в переменной в файле vars
2. Отозвать сертификат клиента:
./easyrsa.real revoke client1
3. Сгенерировать список отзыва:
./easyrsa.real gen-crl
Выдача статических адресов клиенту вручную осуществляется через файл=название сертификата, помещенному в папку /etc/openvpn/server/ccd. Например, файл client1, содержимое файла:
ifconfig-push 10.77.77.100 255.255.255.0
Литература:
Самое главное: пример конфига сервера: https://github.com/OpenVPN/openvpn/blob/master/sample/sample-config-files/server.conf
- Почему отключена сжатие, шифрование GCM и нет SHA512: https://forums.openvpn.net/viewtopic.php?t=33671
- https://redos.red-soft.ru/base/redos-7_3/7_3-network/7_3-sett-vpn/7_3-openvpn/?nocache=1732823939909 (заброшка)
- https://wiki.debian.org/OpenVPN#Installation (заброшка)