Установка сервера OpenVPN на CentOS 8
Перейти к навигации
Перейти к поиску
Ссылки по теме
Установите OpenVPN
dnf install epel-release dnf install openvpn
Включите форвардинг, для этого добавьте параметр в файл /etc/sysctl.conf
net.ipv4.ip_forward = 1
Чтобы применить изменение без перезагрузки, выполните команду
sysctl -p
Добавьте доступ в локальном файрволе
- доступ на подключение к сервису openvpn
- доступ для VPN трафика
Например так:
firewall-cmd --permanent --zone=public --add-service openvpn firewall-cmd --permanent --zone=trusted --add-interface=tun0 firewall-cmd --reload
Создайте каталог для временных файлов tmp-dir
mkdir -p /var/lib/openvpn/chroot/tmp chown openvpn:openvpn /var/lib/openvpn/chroot/tmp chmod 770 /var/lib/openvpn/chroot/tmp
Создайте файл конфигурации /etc/openvpn/server/server.conf
port 1194 proto udp4 explicit-exit-notify 1 dev tun ca /etc/openvpn/server/rootCA.pem cert /etc/openvpn/server/server.pem key /etc/openvpn/server/server.key askpass /etc/openvpn/server/server.pass verify-client-cert require auth-user-pass-verify /etc/openvpn/server/verify.sh via-file tmp-dir /var/lib/openvpn/chroot/tmp script-security 2 dh none server 10.8.0.0 255.255.255.0 ifconfig-pool-persist /var/lib/openvpn/ipp.txt #topology subnet client-to-client push "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 208.67.222.222" push "dhcp-option DNS 208.67.220.220" keepalive 10 120 cipher AES-256-GCM auth SHA256 persist-key persist-tun status /var/lib/openvpn/status.log verb 3
Создайте и разместите файлы сертификатов в каталоге /etc/openvpn/server
- rootCA.pem - сертификат, которым подписан сертификат сервера
- server.pem - сертификат сервера
- server.key - зашифрованный приватный ключ сертификата сервера
- server.pass - пароль для расшифровки приватного ключа
Создайте файл скрипта аутентификации /etc/openvpn/server/verify.sh
#!/bin/bash USERS=`cat /etc/openvpn/server/user.pass` vpn_verify() { if [ ! $1 ] || [ ! $2 ]; then exit 1 fi if [ ! "$common_name" = "$1" ]; then exit 1 fi for i in $USERS; do if [ "$i" = "$1:$2" ]; then exit 0 fi done } if [ ! $1 ] || [ ! -e $1 ]; then exit 1 fi vpn_verify `cat $1` exit 1
Создайте файл паролей пользователей /etc/openvpn/server/user.pass
user1:***password*** user2:***password***
Включите и запустите сервис OpenVPN
systemctl enable openvpn-server@server systemctl start openvpn-server@server