Установка ОпенВПН со скриптами администрирования ключей(изи-РСА):
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 (заброшка)
👀 35