Поднимаем мультипротокольный VPN SoftEther на Ubuntu 22.04

Ubuntu 28-03-2023, 13:18 sobir 2 527 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 - настройку VPN сервера
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 интерфейс:
TAP эмулирует Ethernet устройство и работает на канальном уровне модели OSI, оперируя кадрами Ethernet. TUN (сетевой туннель) работает на сетевом уровне модели OSI, оперируя IP пакетами. TAP используется для создания сетевого моста, тогда как TUN для маршрутизации. SoftEther в режиме SecureNAT может пригодиться, когда нет возможности создать TAP/TUN интерфейс.

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
Похожие новости
How to install Prometheus node exporter on Linux host

Install Prometheus node exporter on Linux host....

Подробнее
Разворачиваем NGINX в Docker

Создание кастомного образа nginx из Dockerfile....

Подробнее
Поднимаем SSL VPN OpenConnect с Let's Encrypt в Ubuntu 20.04

Поднимаем сервер SSL VPN OpenConnect для удаленного доступа пользователям....

Подробнее
Дамп трафика с использованием ETW, Wireshark и tcpdump

Анализируем трафик с использованием стандартных утилит в Windows и Linux....

Подробнее
How to install Docker and Compose on AlmaLinux

Quick setup docker and docker-compose with a simple bash script....

Подробнее
Получаем валидные сертификаты SSL от Let's Encrypt для NGINX

Получаем валидные сертификаты SSL от Let's Encrypt для NGINX с использованием плагина webroot....

Подробнее
Комментарии (0)
Новые комментарии
komronu8 сентября 2022 18:23

Салом, можно ещё создать файл в /etc/nginx/proxy_params, a потом добавить туда

img
К комментарию
sobir26 августа 2022 10:43

Можно ещё так: 1. Создаем отдельную сеть для наших контейнеров docker network

img
К комментарию
komronu22 августа 2022 15:12

Спасибо за отзыв, написал отдельную статью по установке и настройке Ansible

img
К комментарию
sobir19 августа 2022 18:00

Думаю в статье необходимо также описать процесс установки Ansible.

img
К комментарию
sobir17 октября 2021 11:40

Принудительное обновление сертификата: certbot certonly --force-renew -d

img
К комментарию
sobir3 июля 2021 14:19

Можно, но я решил описать процесс копирования ключей более подробно.

img
К комментарию
Все комментарии
Какой дистрибутив Linux вы часто используете?
Календарь
«    Июнь 2024    »
ПнВтСрЧтПтСбВс
 12
3456789
10111213141516
17181920212223
24252627282930
Подпишись на канал