Порядок действий:
Репозитории debian 12 на случай если их не будет:
deb bookworm main non-free-firmware non-free
deb bookworm-security main non-free-firmware non-free
deb bookworm-updates main non-free-firmware non-free
Все действия от root:
apt update && apt install openvpn mc easy-rsa iptables
mkdir /etc/openvpn/easy-rsa
chown root /etc/openvpn/easy-rsa
chmod 700 /etc/openvpn/easy-rsa
cd /etc/openvpn/easy-rsa/
cp /usr/share/easy-rsa/ vars
mcedit /etc/openvpn/easy-rsa/vars
# Размер секретного ключа в битах
set_var EASYRSA_KEY_SIZE 4096
# Включить поддержку криптографии эллиптической кривой (рекомендуется)
set_var EASYRSA_ALGO “ec“
# Настройки цифровой подписи сертификата
set_var EASYRSA_DIGEST “sha512“
# Срок действия всех выпущенных сертификатов в том числе и сервера в днях (1800 дней - это 4.9 лет)
set_var EASYRSA_CERT_EXPIRE 1800
# Число дней до следующей даты публикации CRL.
set_var EASYRSA_CRL_DAYS 365
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
# файл нужно обновлять заранее,
# иначе если истечет срок действия файла , то клиенты не смогут подключиться
# В журналах работы сервера при этом увидите
# ошибки подключения клиентов и указание на проблему срока действия CRL.
# Чтобы проверить последнюю дату обновления файла CRL
# используй команду: openssl crl -inform PEM -in -text -noout
# Last Update: Aug 26 13:30:36 2022 GMT
# Next Update: Sep 25 13:30:36 2023 GMT
# Чтобы обновить CRL используй команду: ./easyrsa gen-crl
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ln -s /usr/share/easy-rsa/easyrsa easyrsa
./easyrsa init-pki
./easyrsa build-ca
./easyrsa build-server-full deb12vpn nopass
./easyrsa gen-crl
mcedit /etc/openvpn/server/
local Внешний IP-адрес сервера
port 1194
proto tcp
dev tun
ca /etc/openvpn/easy-rsa/pki/
cert /etc/openvpn/easy-rsa/pki/issued/
key /etc/openvpn/easy-rsa/pki/private/
crl-verify /etc/openvpn/easy-rsa/pki/
dh none
server
ifconfig-pool-persist
push “redirect-gateway“
keepalive 10 120
auth SHA512
cipher AES-256-GCM
tun-mtu 1500
max-clients 100
persist-key
persist-tun
status /var/log/openvpn/
log /var/log/openvpn/
log-append /var/log/openvpn/
verb 3
mute 20
topology subnet
cp /lib/systemd/system/
[email protected] /lib/systemd/system/openvpn-server@
systemctl daemon-reload
systemctl start openvpn-server@
systemctl status openvpn-server@
ss -nlpt | grep 1194
systemctl enable openvpn-server@
mcedit /etc/sysctl.d/
# Network
= 1
= 1
= 1
= 1073741824
= 1073741824
= 1048576 16777216 1073741824
= 1048576 16777216 1073741824
= 30
= 30
= 20
= 1048576 16770216 1073741824
= 1
mcedit /etc/iptables/
# Здесь enp1s0 это интерфейс смотрящий в интернет
*nat
:PREROUTING ACCEPT
:OUTPUT ACCEPT
:POSTROUTING ACCEPT
-A POSTROUTING -o enp1s0 -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i enp1s0 -p tcp --dport 22 -j ACCEPT
-A INPUT -i enp1s0 -p tcp --dport 1194 -j ACCEPT
-A INPUT -i tun0 -j ACCEPT
-A INPUT -p icmp --icmp-type any -j ACCEPT
-A FORWARD -i enp1s0 -o tun0 -j ACCEPT
-A FORWARD -i tun0 -o enp1s0 -j ACCEPT
-A INPUT -j DROP
-A FORWARD -j DROP
COMMIT
mkdir /root/scripts
mcedit /root/scripts/
Приводим к виду:
#!/bin/bash
/usr/sbin/iptables-restore ЗнакНеравенстваМеньше /etc/iptables/
chmod x /root/scripts/
crontab -e
@reboot /root/scripts/
Отключение обнаруженного после перезагрузки сервера сервиса
В нашем случае он не нужен
systemctl disable
Финальная перезагрузка, сервер готов!