На примере Debian Buster и SoftEther VPN v4.29-9680-rtm.
Links:
SoftEther VPN Server Linux: | GitHub - Releases | Softether-Download |
SoftEther VPN Client Windows: | Softether-Download |
SoftEther VPN Server Manager: | Softether-Download |
SoftEther VPN Client Windows: | Softether-Download |
Устанавливаем необходимые пакеты для сборки:
# apt install gcc make libreadline-dev libssl-dev libncurses-dev zlib1g-dev curl net-tools checkinstall
- Скачиваем SoftEther VPN,
# wget -P /tmp https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/releases/download/v4.29-9680-rtm/softether-src-v4.29-9680-rtm.tar.gz
# tar -xf /tmp/softether-src-v4.29-9680-rtm.tar.gz -C /tmp
# cd /tmp/v4.29-9680/
- Собираем и устанавливаем,
# ./configure
# make
# make install
- Вместо "make install" можно воспользоваться "checkinstall". Это позволит собрать .deb пакет и корректно удалить его в дальнейшем.
# checkinstall --install
- Удалить установленный пакет,
# dpkg -r softethervpn
Команды для управления сервисом SoftEther VPN:
Execute 'vpnserver start' to run the SoftEther VPN Server background service.
Execute 'vpnbridge start' to run the SoftEther VPN Bridge background service.
Execute 'vpnclient start' to run the SoftEther VPN Client background service.
Execute 'vpncmd' to run SoftEther VPN Command-Line Utility to configure VPN Server, VPN Bridge or VPN Client.
Server:
Настройка сервера.
Стартуем vpnserver:
# vpnserver start
Проходим тесты:
# vpncmd
3. Use of VPN Tools
VPN Tools> check
VPN Tools> exit
Настраиваем vpnserver [CLI]:
# vpncmd
1. Management of VPN Server or VPN Bridge
Hostname of IP Address of Destination: ip или доменное имя;
Specify Virtual Hub Name: ENTER;
- Cli,
VPN Server> ServerPasswordSet; Устанавливаем пароль Администратора.
VPN Server> KeepDisable; Отключаем Keep Alive Internet Connection.
VPN Server> ServerCipherSet AES256-SHA; Устанавливаем нужный алгоритм шифрования.
VPN Server> HubDelete DEFAULT; Удаляем стандартный хаб.
VPN Server> HubCreate VPN; Создаем новый виртуальный хаб.
VPN Server> Hub VPN; Переходим в созданный хаб.
VPN Server/VPN> GroupCreate; Создаем группу VIP.
VPN Server/VPN> UserCreate; Создаем пользователя и присоединяем (Assigned Group Name) его к группе VIP.
VPN Server/VPN> UserPasswordSet; Задаем пароль для юзера.
VPN Server/VPN> logdisable packet; Отключаем ведение логов для packet.
VPN Server/VPN> IPsecEnable /L2TP:yes /L2TPRAW:no /ETHERIP:no /PSK:<preshared-key> /DEFAULTHUB:VPN
VPN Server> OpenVpnGet; Проверяем статус OpenVPN сервера.
VPN Server> SstpEnable no; Отключаем SSTP.
Режим Local Bridge Setting:
Создаем виртуальный TAP интерфейс и настраиваем DNSMASQ.
TAP эмулирует Ethernet устройство и работает на канальном уровне модели OSI, оперируя кадрами Ethernet. TUN (сетевой туннель) работает на сетевом уровне модели OSI, оперируя IP пакетами. TAP используется для создания сетевого моста, тогда как TUN для маршрутизации. SoftEther в режиме SecureNAT может пригодиться, когда нет возможности создать TAP/TUN интерфейс.
VPN Server> BridgeDeviceList; Вывести список физических интерфейсов.
VPN Server> BridgeCreate VPN /DEVICE:soft /TAP:yes; Создаем Local Bridge.
VPN Server> BridgeList; Выводим список созданных Local Bridge.
- Проверяем статус интерфейса в системе,
# ip addr или ifconfig
SYSTEMD:
Создаем сервис для автозапуска softethervpn с присвоением IP-адреса интерфейсу tap_soft.
# vpnserver stop
# nano /etc/systemd/system/softether-vpnserver.service
[Unit]
Description=SoftEther VPN Server
After=network.target
[Service]
Type=forking
ExecStart=/usr/bin/vpnserver start
ExecStartPost=/bin/sleep 3s
ExecStartPost=/sbin/ifconfig tap_soft 10.0.0.1/24
#ExecStartPost=/sbin/ip address add 10.0.0.1/24 dev tap_soft
ExecStop=/usr/bin/vpnserver stop
[Install]
WantedBy=multi-user.target
# systemctl daemon-reload
# systemctl start softether-vpnserver.service
# systemctl enable softether-vpnserver.service
# systemctl disable softether-vpnserver.service
- Проверяем интерфейс.
# ifconfig
DNSMASQ:
Будет работать в качестве DHCP-сервера.
Устанавливаем:
# apt-get install dnsmasq
Делаем бекап конфига:
# cp /etc/dnsmasq.conf /etc/dnsmasq.conf.old && > /etc/dnsmasq.conf
Приступаем к настройке:
# nano /etc/dnsmasq.conf
interface=tap_soft
dhcp-range=tap_soft,10.0.0.10,10.0.0.50,1h # Range IP
#dhcp-option=tap_soft,3,10.0.0.1 # Gateway
dhcp-option=tap_soft,6,77.73.68.161,91.217.137.37,185.117.154.144 # DNS
# Чтобы у vpn клиентов был доступ в локальную сеть за softether;
#dhcp-option=121,192.168.5.0/24,10.0.0.1 # Роутинги для RFC-клиентов;
#dhcp-option=249,192.168.5.0/24,10.0.0.1 # Роутинги для Microsoft-клиентов;
# /etc/init.d/dnsmasq restart
SYSCTL:
Разрешаем обмен пакетами между сетевыми интерфейсами:
# nano /etc/sysctl.d/99-sysctl.conf
net.ipv4.ip_forward=1
- Применяем настройки,
# sysctl -p или sysctl --system
TAP_SOFT:
Команды для работы с TAP_SOFT интерфейсом.
# ip tuntap add dev tap_soft mode tap # Создать интерфейс;
# ip addr add 10.0.0.1/24 dev tap_soft # Назначить IP-адрес;
# ifconfig tap_soft 10.0.0.1/24 # Назначить IP через ifconfig;
# ip address show tap_soft # Показать информацию;
# ip link set tap_soft up # Поднять интерфейс;
# ip link set tap_soft down # Остановить интерфейс;
IPTABLES:
Разрешаем доступ к интернету, для клиентов из сети VPN-сервера. На WAN-интерфейсе установлен статический IP-адрес.
# iptables -t nat -A POSTROUTING -o ens3 -s 10.0.0.0/24 -j SNAT --to-source ip-address
# apt-get install iptables-persistent
# iptables-save > /etc/iptables/rules.v4
Плюшки:
- Отключаем Dynamic DNS;
declare DDnsClient
{
bool Disabled true
}
- Отключаем NAT-T;
declare ServerConfiguration
{
bool DisableNatTraversal true
}
declare VirtualHUB -> declare VPN -> declare Option
bool DisableUdpAcceleration true
Автозапуск сервиса через init.d:
Показать листинг: >
# nano /etc/init.d/vpnserver
#!/bin/sh
DAEMON=/usr/vpnserver/vpnserver
LOCK=/var/lock/subsys/vpnserver
TAP_ADDR=10.0.0.1/24
test -x $DAEMON || exit 0
case "$1" in
start)
$DAEMON start
touch $LOCK
sleep 1
/sbin/ifconfig tap_soft $TAP_ADDR
;;
stop)
$DAEMON stop
rm $LOCK
;;
restart)
$DAEMON stop
sleep 3
$DAEMON start
sleep 1
/sbin/ifconfig tap_soft $TAP_ADDR
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0
# chmod +x /etc/init.d/vpnserver
- Делаем его исполняемым;
# chmod +x /etc/init.d/vpnserver
- Добавляем в автозагрузку;
# update-rc.d vpnserver defaults
- Удалить из автозагрузки;
# update-rc.d vpnserver remove
- Запускаем;
# /etc/init.d/vpnserver { start | stop | restart }
Ссылки на источники:
| Установка и настройка Softether VPN | Доработка напильником SoftEther VPN | Объединяем сети при помощи SoftEther VPN |