Поднимаем мультипротокольный VPN SoftEther на Ubuntu 22.04
Ubuntu 28-03-2023, 13:18 sobir 3 468 0
SoftEther VPN — это бесплатное, кроссплатформенное, многопротокольное программное обеспечение VPN-клиента и VPN-сервера с открытым исходным кодом.
Установку SoftEther VPN мы будем выполнять из исходников на базе ОС Ubuntu 22.04. Рассмотрим процесс компиляции и установки программного обеспечения в командной строке Linux.
1. Устанавливаем необходимые пакеты:
apt update
apt install gcc make wget -y
2. Скачиваем архив SoftEther VPN Server с оф. сайта (версия 4.38-9760 на момент написания статьи)
wget https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.38-9760-rtm/softether-vpnserver-v4.38-9760-rtm-2021.08.17-linux-x64-64bit.tar.gz
3. Разархивируем файлы и запустим процесс компиляции и установки:
tar -xvzf softether-vpnserver-v4.38-9760-rtm-2021.08.17-linux-x64-64bit.tar.gz -C /opt/
cd /opt/vpnserver/
make
4. Запускаем SoftEther VPN Server:
/opt/vpnserver/vpnserver start
5. Назначаем пароль для администратора:
/opt/vpnserver/vpncmd
1. Management of VPN Server or VPN Bridge
На следующие два вопроса просто нажимаем ENTER
Hostname of IP Address of Destination:
Specify Virtual Hub Name:
После мы окажемся в командной оболочке SoftEther. Вводим команду:
VPN Server> ServerPasswordSet
6. Создадим виртуальный TAP интерфейс:
VPN Server> BridgeDeviceList
VPN Server> BridgeCreate DEFAULT /DEVICE:soft /TAP:yes
VPN Server> BridgeList
7. Проверяем статус интерфейса в системе:
ip addr или ifconfig
8. Создадим сервис для автозапуска SoftEther VPN Server с присвоением IP-адреса интерфейсу tap_soft:
vi /etc/systemd/system/vpnserver.service
[Unit]
Description=SoftEther VPN Server
After=network.target
[Service]
Type=forking
ExecStart=/opt/vpnserver/vpnserver start
ExecStartPost=/bin/sleep 3s
ExecStartPost=/sbin/ifconfig tap_soft 192.168.249.1/24
#ExecStartPost=/sbin/ip address add 192.168.249.1/24 dev tap_soft
ExecStop=/opt/vpnserver/vpnserver stop
#ExecReload=/bin/kill -HUP $MAINPID
#Restart=on-failure
[Install]
WantedBy=multi-user.target
Перечитываем конфигурацию systemd:
systemctl daemon-reload
Разрешаем автозапуск и стартуем vpnserver:
systemctl enable --now vpnserver
Проверяем статус службы:
systemctl status vpnserver
9. В качестве DHCP-сервера установим сервис Dnsmasq. Для начала остановим службу systemd-resolved:
systemctl disable --now systemd-resolved
rm -f /etc/resolv.conf
echo 'nameserver 1.1.1.1' > /etc/resolv.conf
echo 'nameserver 8.8.8.8' >> /etc/resolv.conf
apt install dnsmasq -y
10. Выполним бэкап конфига Dnsmasq:
mv /etc/dnsmasq.conf /etc/dnsmasq.conf.bak
11. Приводим конфиг к следующему виду:
vi /etc/dnsmasq.conf
interface=tap_soft
dhcp-range=tap_soft,192.168.249.10,192.168.249.200,12h
dhcp-option=3
dhcp-option=tap_soft,6,1.1.1.1,8.8.8.8
dhcp-option=121,192.168.0.0/16,192.168.249.1,172.16.0.0/12,192.168.249.1,10.0.0.0/8,192.168.249.1
12. Перезапускаем службу dnsmasq:
systemctl restart dnsmasq
13. Разрешаем пересылку пакетов между интерфейсами:
sysctl net.ipv4.ip_forward=1
echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf
14. Настроим трансляцию трафика на основе источника:
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.249.0/24 -j MASQUERADE
apt install iptables-persistent -y
iptables-save > /etc/iptables/rules.v4
Install Prometheus node exporter on Linux host....
ПодробнееПоднимаем сервер SSL VPN OpenConnect для удаленного доступа пользователям....
ПодробнееАнализируем трафик с использованием стандартных утилит в Windows и Linux....
ПодробнееQuick setup docker and docker-compose with a simple bash script....
ПодробнееПолучаем валидные сертификаты SSL от Let's Encrypt для NGINX с использованием плагина webroot....
ПодробнееНовые комментарии
Салом, можно ещё создать файл в /etc/nginx/proxy_params, a потом добавить туда
К комментариюМожно ещё так: 1. Создаем отдельную сеть для наших контейнеров docker network
К комментариюСпасибо за отзыв, написал отдельную статью по установке и настройке Ansible
К комментариюДумаю в статье необходимо также описать процесс установки Ansible.
К комментариюПринудительное обновление сертификата: certbot certonly --force-renew -d
К комментариюМожно, но я решил описать процесс копирования ключей более подробно.
К комментарию