Анонимность в интернете своими руками. Установка и настройка SoftEther VPN Server (Часть2)

Продолжение.

Часть 1


Пробуем запустить dnsmasq

systemctl restart dnsmasq

и смотрим состояние

systemctl status dnsmasq

Должно быть типа такого:

Анонимность в интернете своими руками. Установка и настройка SoftEther VPN Server (Часть2) VPN, VPS, Softether, Linux, Настройки, Инструкция, Длиннопост

Если не так, то смотрим в лог /var/log/messages


Если есть ошибка "warning: interface tap_softether does not currently exist", то либо вы ошиблись где-то в настройках ранее, либо не запущен VPN-сервер. Как запустить, написано выше.


Если ошибка "failed to bind DHCP server socket: Address already in use", то смотрим вывод команды

netstat -anlp | grep -w LISTEN

Скорее всего увидим что-то типа:

tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/init
tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 19819/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 110/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 196/sendmail: accep
tcp6 0 0 :::111 :::* LISTEN 15492/rpcbind
tcp6 0 0 :::80 :::* LISTEN 104/httpd
tcp6 0 0 :::53 :::* LISTEN 19819/dnsmasq
tcp6 0 0 :::22 :::* LISTEN 110/sshd

Видим, что висит процесс dnsmasq и занимает интерфейс. Запоминаем число перед /dnsmasq (в моём случае это 19819) и используем его в команде

kill 19819

После этого пробуем

systemctl start dnsmasq
systemctl status dnsmasq

Всё должно стать хорошо.


Теперь открываем наш скрипт запуска VPN-сервера /etc/rc.d/init.d/sevpnserver и редактируем по образцу (можно просто очистить содержимое и вставить отсюда):

#!/bin/sh
#
# chkconfig: 2345 20 80
# description: SoftEther VPN Server
#
#
#
#
DAEMON=/etc/sevpn/vpnserver/vpnserver
LOCK=/var/lock/vpnserver/vpnserver
TAP_ADDR=10.8.0.1
test -x $DAEMON || exit 0
case "$1" in
start)
echo Starting SoftEther VPN Server...
$DAEMON start
touch $LOCK
sleep 3
/sbin/ifconfig tap_softether $TAP_ADDR
sleep 3
systemctl restart dnsmasq
;;
stop)
echo Stopping SoftEther VPN Server...
$DAEMON stop
rm $LOCK
;;
restart|reload)
echo Reloading SoftEther VPN Server...
$DAEMON stop
sleep 5
$DAEMON start
sleep 3
/sbin/ifconfig tap_softether $TAP_ADDR
sleep 3
systemctl restart dnsmasq
;;
*)
echo Usage: $0 "{start|stop|restart}"
exit 1
esac
exit 0

По традиции скрипты и конфиги с нормальным форматированием здесь

Сохраняем.


Добавим скрипт в автозагрузку

chkconfig sevpnserver on

Проверить, что скрипт добавился можно командой

chkconfig --list

В выводе команды должна присутствовать строчка

sevpnserver 0:off 1:off 2:on 3:on 4:on 5:on 6:off

Теперь идём в статью про файрволл и маршрутизацию и делаем всё, как там написано, но с единственным отличием: содержимое файла ipt-set взять указанное ниже.


В переменную IP_EXT вместо 123.123.123.123 вписываем IP-адрес своего VPS.

#!/bin/sh
IF_EXT="venet0"
IF_VPN="tap_softether"
VPN_PORT="443"
IPT="/sbin/iptables"
IPT6="/sbin/ip6tables"
IP_EXT="123.123.123.123"
# flush
$IPT --flush
$IPT -t nat --flush
$IPT -t mangle --flush
$IPT -X
$IPT6 --flush
# loopback
$IPT -A INPUT -i lo -j ACCEPT
$IPT -A OUTPUT -o lo -j ACCEPT
# default
$IPT -P INPUT DROP
$IPT -P OUTPUT DROP
$IPT -P FORWARD DROP
$IPT6 -P INPUT DROP
$IPT6 -P OUTPUT DROP
$IPT6 -P FORWARD DROP
# allow forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward
# NAT
# #########################################
# SNAT - local users to out internet
$IPT -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT --to-source $IP_EXT
# INPUT chain
# #########################################
$IPT -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
$IPT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# ssh
$IPT -A INPUT -i $IF_EXT -p tcp --dport 22 -j ACCEPT
# DNS
$IPT -A INPUT -i $IF_VPN -p udp --dport 53 -s 10.8.0.0/24 -j ACCEPT
# vpn
$IPT -A INPUT -i $IF_VPN -p icmp -s 10.8.0.0/24 -j ACCEPT
$IPT -A INPUT -i $IF_EXT -p tcp --dport $VPN_PORT -j ACCEPT
$IPT -A INPUT -p udp --dport 500 -j ACCEPT
$IPT -A INPUT -p udp --dport 4500 -j ACCEPT
$IPT -N syn_flood
$IPT -A INPUT -p tcp --syn -j syn_flood
$IPT -A syn_flood -m limit --limit 500/s --limit-burst 2000 -j RETURN
$IPT -A syn_flood -j DROP
# FORWARD chain
# #########################################
$IPT -A FORWARD -i $IF_VPN -o $IF_EXT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -i $IF_EXT -o $IF_VPN -m state --state ESTABLISHED,RELATED -j ACCEPT
$IPT -A FORWARD -s 10.8.0.0/24 -d 10.8.0.0/24 -j ACCEPT
# OUTPUT chain
# #########################################
$IPT -A OUTPUT -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT

В Server Manager откроем «Encryption and Network»

Анонимность в интернете своими руками. Установка и настройка SoftEther VPN Server (Часть2) VPN, VPS, Softether, Linux, Настройки, Инструкция, Длиннопост

И выставляем опции как на скриншоте (обведено красным)

Анонимность в интернете своими руками. Установка и настройка SoftEther VPN Server (Часть2) VPN, VPS, Softether, Linux, Настройки, Инструкция, Длиннопост

Жмём Ок.

Перезагрузим VPS командой из консоли

reboot

Теперь наш сервер готов принимать подключения.

Как их настроить, читайте здесь.