====== Настройка SSTP сервера на Almalinux 8 ======
===== 1. Подготовка окружения =====
==== Установим необходимые утилиты для компиляции и работы сервера: ====
sudo dnf install wget make gcc binutils tar -y
(При необходимости можно заранее включить EPEL-репозиторий для дополнительных пакетов:)
sudo dnf install epel-release -y
===== 2. Скачивание и сборка SoftEther VPN Server =====
wget "https://www.softether-download.com/files/softether/v4.41-9787-rtm-2023.03.14-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.41-9787-rtm-2023.03.14-linux-x64-64bit.tar.gz"
tar -xzf softether-vpnserver-*.tar.gz
cd vpnserver
make
cd ..
sudo mv vpnserver /usr/local/
===== 3. Настройка прав и SELinux =====
sudo chmod -R 600 /usr/local/vpnserver/*
sudo chmod 700 /usr/local/vpnserver/vpnserver /usr/local/vpnserver/vpncmd
#sudo chcon -Rv -u system_u -t bin_t /usr/local/vpnserver/vpnserver
#sudo semanage fcontext -a -t bin_t '/usr/local/vpnserver/vpnserver'
#sudo restorecon -v '/usr/local/vpnserver/vpnserver'
sudo semanage fcontext -a -t bin_t '/usr/local/vpnserver(/.*)?'
sudo restorecon -Rv '/usr/local/vpnserver'
===== 4. Создание systemd-сервиса =====
Создаём файл /etc/systemd/system/softether-vpnserver.service со следующим содержимым:
[Unit]
Description=SoftEther VPN server
After=network-online.target
[Service]
Type=forking
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop
[Install]
WantedBy=multi-user.target
Перезагрузим демона и включим автозапуск:
sudo systemctl daemon-reload
sudo systemctl enable softether-vpnserver
sudo systemctl start softether-vpnserver
===== 5. Открытие порта в брандмауэре =====
SSTP работает поверх SSL/TLS на TCP 443:
sudo firewall-cmd --zone=public --add-port=443/tcp --permanent
sudo firewall-cmd --reload
===== 6. Базовая настройка SSTP-сервера через vpncmd =====
Запускаем утилиту управления:
sudo /usr/local/vpnserver/vpncmd /SERVER
В интерфейсе:
* Создать виртуальный хаб для SSTP:
HubCreate SSTP
* Установить пароль администратора:
ServerPasswordSet
* Включить SecureNAT (встроенный NAT/DHCP):
SecureNatEnable
* Перейти в хаб и создать VPN-пользователя:
Hub SSTP
UserCreate <имя_пользователя>
UserPasswordSet <имя_пользователя>
* Сгенерировать SSL-сертификат (замените yourdomain.com):
ServerCertRegenerate yourdomain.com
ServerCertGet yourdomain.com.cer
* Включить SSTP:
SstpEnable yes
* Выйти:
exit
Перезапустить службу softether-vpnserver:
sudo systemctl restart softether-vpnserver
===== 7. Включить маршрутизацию и настроить NAT (маскарадинг) в Firewalld=====
* Добавьте в /etc/sysctl.d/99-sysctl.conf:
net.ipv4.ip_forward = 1
* Применить настройку:
sudo sysctl --system
* Включите маскарадинг:
sudo firewall-cmd --zone=public --add-masquerade --permanent
* (Опционально) Если хотите ограничить маскарадинг только для SSTP-подсети:
sudo firewall-cmd --permanent --direct --add-rule ipv4 nat POSTROUTING 0 \
-s 192.168.30.0/24 -o eth0 -j MASQUERADE
* Перезагрузите firewalld:
sudo firewall-cmd --reload
===== Внешний сертификат =====
sudo dnf install nginx certbot python3-certbot-nginx -y
sudo systemctl enable --now nginx
sudo firewall-cmd --zone=public --add-service=http --permanent
#sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload
sudo certbot --nginx -d sstp.virtlab.space
sudo mkdir -p /etc/letsencrypt/renewal-hooks/deploy
sudo tee /etc/letsencrypt/renewal-hooks/deploy/softether-reload.sh > /dev/null <<'EOF'
#!/bin/bash
LE_DIR="/etc/letsencrypt/live/sstp.virtlab.space"
VPN_DIR="/usr/local/vpnserver"
# Копируем свежий сертификат и ключ
cp "$LE_DIR/fullchain.pem" "$VPN_DIR/server.crt"
cp "$LE_DIR/privkey.pem" "$VPN_DIR/server.key"
# Ставим правильные права
chmod 600 "$VPN_DIR/server.crt" "$VPN_DIR/server.key"
chown root:root "$VPN_DIR/server.crt" "$VPN_DIR/server.key"
# Перезапускаем SoftEther, чтобы он подхватил новые файлы
systemctl restart softether-vpnserver
EOF
sudo chmod +x /etc/letsencrypt/renewal-hooks/deploy/softether-reload.sh
sudo cp /etc/letsencrypt/live/sstp.virtlab.space/fullchain.pem /usr/local/vpnserver/server.crt
sudo cp /etc/letsencrypt/live/sstp.virtlab.space/privkey.pem /usr/local/vpnserver/server.key
sudo chmod 600 /usr/local/vpnserver/server.{crt,key}
sudo chown root:root /usr/local/vpnserver/server.{crt,key}
===== Настройка на стороне Windows клиента =====
- Установить сертификат sstp.cer в хоанилище локальных доверенных корневых сертфиикатов.
- Создать новое подключение SSTP, указав в качестве сервера dns-имя указанное в сертификате.
- VPN type - SSTP
- Указать имя пользователя в формате username@hub_name, т.е. username@sstp {{:common_linux:pasted:20250517-212836.png}}
- В свойствах соединения на вкладке Security указать протоколы: PAP и MS-CHAPv2 {{:common_linux:pasted:20250517-212740.png}}