Привожу пример настройки сервера для CentOS 7 на KVM в общих чертах. Данная инструкция очень сухая — без скриншотов и без тонны разъяснений. Сухая словно сухое вино, хорошо выжатая, насыщенная конкретным алгоритмом, чтобы превратить твой сервак в VPN. Очень полезна при недостатке Spotify, Rutr@cker’a и других ресурсов из сети твоего провайдера. Я использовал мощности Hetzner.com для хостинга своей VPS.
Накатываем на сервак тулзы для сборки VPN:
yum -y groupinstall "Development Tools"
yum -y install gcc zlib-devel openssl-devel readline-devel ncurses-devel
yum -y install system-config-network-tui system-config-firewall-tui
yum -y install policycoreutils-python
yum -y install net-tools
Дергаем ссылку на подходящий пакет прямо с сайта разработчиков. Затем перекатываемся в какую-нибудь директорию и прям там шелудим этот пакет.
cd /tmp/
wget http://www.softether-download.com/files/softether/v4.22-9634-beta-2016.11.27-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.22-9634-beta-2016.11.27-linux-x64-64bit.tar.gz
tar zxf softether-vpnserver-v4.22-9634-beta-2016.11.27-linux-x64-64bit.tar.gz
Возвращаемся на каталог назад, перемещаем сервак в удобную нам локацию и обновляем ему права, дабы защитить от неугодных
cd ..
mv vpnserver /usr/local
cd /usr/local/vpnserver/
chmod 600 *
chmod 700 vpncmd
chmod 700 vpnserver
Теперь нужно запилить службу, чтобы не было больно при каждом ребуте. Создаем следующий скрипт — /etc/init.d/vpnserver. Удобное название для нашего сервера VPN сервера.
#!/bin/sh
### BEGIN INIT INFO
# Provides: vpnserver
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable Softether by daemon.
### END INIT INFO
DAEMON=/usr/local/vpnserver/vpnserver
LOCK=/var/lock/subsys/vpnserver
test -x $DAEMON || exit 0
case "$1" in
start)
$DAEMON start
touch $LOCK
;;
stop)
$DAEMON stop
rm $LOCK
;;
restart)
$DAEMON stop
sleep 3
$DAEMON start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0
Необходимо добавить службу в запуск, чтобы при каждом запуске, система автоматически поднимала наш випиэн.
chmod 755 /etc/init.d/vpnserver
mkdir /var/lock/subsys
systemctl enable vpnserver
Поднимаем сервак и смотрим, как он себя чувствует — если тесты выкидывают Pass, то вы, наверно, все сделали правильно.
/etc/init.d/vpnserver start cd /usr/local/vpnserver/ ./vpncmd 3 check exit
Переходим к настройке самого VPN сервера.
Начнем со смены пароля админа
cd /usr/local/vpnserver/ ./vpncmd 1 Enter Enter VPN Server>ServerPasswordSet
Настраиваем сервер под себя, выбираем шифрование, создаем хаб и создаем первого пользователя, а также выключаем логи и включаем L2TP/IPSec:
KeepDisable ServerCipherSet AES256-SHA HubDelete DEFAULT HubCreate VPN Hub VPN GgroupCreate UserCreate UserPasswordSet logdisable packet IPsecEnable /L2TP:yes /L2TPRAW:no /ETHERIP:no /PSK:<preshared-key> /DEFAULTHUB:VPN SstpEnable no
Далее создаем и настраиваем локальный мост и сразу же проверим его существование:
BridgeСreate VPN /DEVICE:VPN /TAP:yes BridgeList
Затем проверим его существование и в системе:
ifconfig tap_vpn
Установим легковесный DNS перенаправитель и DHCP сервер — dnsmasq. И заодно настроим его под наши интересы:
yum -y install dnsmasq
Dnsmasq настраивается через конфиг-файл /etc/dnsmasq.conf:
interface=tap_vpn
dhcp-range=tap_vpn,192.168.200.10,192.168.200.100,2h
dhcp-option=tap_vpn,option:router,192.168.200.1
dhcp-option=tap_vpn,option:dns-server,8.8.8.8,77.88.8.8
А скрипт сервера меняется следующим образом. Не забудь поменять GLOB_IP на ip своей машины, а также и другие переменные, если ты делаешь что-нибудь по своему:
#!/bin/sh
### BEGIN INIT INFO
# Provides: vpnserver
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable Softether by daemon.
### END INIT INFO
DAEMON=/usr/local/vpnserver/vpnserver
LOCK=/var/lock/subsys/vpnserver
TAP_ADDR=192.168.200.1
GLOB_IP=195.201.31.142
test -x $DAEMON || exit 0
refreshnets () {
iptables -t nat -A POSTROUTING -s 192.168.200.0/24 -j SNAT --to-source $GLOB_IP
systemctl restart dnsmasq
echo "iptables and dnsmasq were updated"
}
case "$1" in
start)
refreshnets
sleep 2
$DAEMON start
touch $LOCK
sleep 1
/sbin/ifconfig tap_vpn $TAP_ADDR
;;
stop)
$DAEMON stop
rm $LOCK
;;
restart)
$DAEMON stop
sleep 3
$DAEMON start
sleep 1
/sbin/ifconfig tap_vpn $TAP_ADDR
;;
resetnets)
refreshnets
;;
*)
echo "Usage: $0 {start|stop|restart|resetnets}"
exit 1
esac
exit 0
Настраиваем автофорвардинг в системе через файл конфигурации /etc/sysctl.d/ipv4_forwarding.conf:
net.ipv4.ip_forward = 1
А затем применяем настройки в системе:
sysctl --system
Наконец-то все готово, ребутаем сервак, и бежим проверять наш vpn. Сначала проверяем его коммандой systemctl status vpnserver. Должно выбросить что-то типо следующего:
● vpnserver.service - LSB: Start daemon at boot time Loaded: loaded (/etc/rc.d/init.d/vpnserver; bad; vendor preset: disabled) Active: active (running) since Sat 2018-03-24 20:45:00 CET; 1min 37s ago Docs: man:systemd-sysv-generator(8) Process: 881 ExecStart=/etc/rc.d/init.d/vpnserver start (code=exited, status=0/SUCCESS) CGroup: /system.slice/vpnserver.service ├─1077 /usr/local/vpnserver/vpnserver execsvc └─1078 /usr/local/vpnserver/vpnserver execsvc Mar 24 20:44:57 debian-2gb-nbg1-dc3-1 systemd[1]: Starting LSB: Start daemon at boot time... Mar 24 20:44:57 debian-2gb-nbg1-dc3-1 vpnserver[881]: iptables and dnsmasq were updated Mar 24 20:44:59 debian-2gb-nbg1-dc3-1 vpnserver[881]: The SoftEther VPN Server service has been started. Mar 24 20:45:00 debian-2gb-nbg1-dc3-1 systemd[1]: Started LSB: Start daemon at boot time.
Теперь донастраиваем сервак, либо через CLI, либо через GUI, который можно установить опять же с сайта разработчика. Рассматривать тонкости GUI настроек не буду, поскольку уже есть две инструкции. Я лишь сделал свою сборную стайтеку, которая у меня отлично работает.
1 ответ к “Настраиваем свой VPN на основе SoftEther”
Внимательно посмотрите 77.88.8.8 — это Яндекс ДНС
У «него» все получилось, а ВАМ решать, dnsmasq или другой пакет