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

Ранее мы рассмотрели, как построить собственную VPN сеть на основе решения OpenVPN (1 2 3 4). Это очень хорошее решение, но есть ряд общих недостатков для конечного пользователя:

- относительно сложные установка и настройка;

- обязательное наличие на сервере TUN/TAP;

- трафик OpenVPN легко детектируется всякими Роскомнадзорами.


При этом OpenVPN является безусловным лидером с подтвержденной криптоустойчивостью. И если у вас нет необходимости маскировать VPN трафик под «обычный», то пользуйтесь OpenVPN.


А теперь отличная новость для тех кто в России/Украине/Казахстане/Китае и других странах, с контролем сети интернет на государственном уровне.


Встречайте решение от наших японских товарищей: SoftEther VPN.


SoftEther VPN — это мощный мультипротокольный VPN-сервер под лицензией CPLv2 (т.е. совершенно свободный к распространению и использованию).


Решение обладает огромным спектром возможностей:

- собственный протокол SSL-VPN, который не отличим от HTTPS траффика. При этом он может работать не только по TCP, но и по UDP, и, даже, ICMP.

- Поддерживает большинство существующих протоколов VPN: L2TP/IPsec, MS-SSTP, OpenVPN, L2TPv3 и EtherIP, причем для L2TP указана строгая совместимость со встроенными клиентами в iOS и Android. Т.е. к серверу SoftEther VPN вы можете подключить клиента OpenVPN или подключиться с использованием встроенных VPN-механизмов Windows. Причем одновременно.

- Сервер может быть установлен на Windows, Linux, OS X, FreeBSD и Solaris.

- И теоретически и практически работает быстрее OpenVPN.

- Имеет GUI через который можно управлять несколькими серверами.

- Ему не нужно TUN/TAP.

- Имеет встроенный NAT и DHCP. Не нужно настраивать iptables.


Нужно понимать, что хотя SoftEther VPN достаточно стабильное и надежное решение, но оно всё еще в стадии beta. А значит, теоретически, в его работе возможны неожиданные ошибки.


Хватит читать, нужно пробовать. Арендуем себе дешёвенький VPS, выполним его предварительную настройку. Исходим из того, что вы подключились к серверу по SSH через putty и WinCSP.


Идём на страницу загрузки SoftEther VPN и выбираем нужный дистрибутив.

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

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

cd /tmp/
wget http://www.softether-download.com/files/softether/v4.22-9634...

Также нам понадобиться некоторой набор инструментов:

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

Переведем SELinux в разрешающий (permissive) режим:

setenforce 0

Отключим файрвол:

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

Убедимся, что в строчке «Firewall: [ ] Enabled нет звездочки *


Если она там есть, то используя кнопку TAB дл перемещения и пробел для «нажатия» убираем её. Затем переходим на кнопку ОК и нажимаем её. Если звёздочки нет, то сразу на ОК. В появившейся форме

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

«нажимаем» Yes.


Создадим папку для нашего сервера:

mkdir /etc/sevpn/

Теперь распакуем скачанный ранее архив с VPN-сервером, установим права на папку и перейдём в неё:

tar xzvf 64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.22-9634-beta-2016.11.27-linux-x64-64bit.tar.gz -C /etc/sevpn/
chmod -R 744 /etc/sevpn
cd /etc/sevpn/vpnserver

Скомпилируем наш сервер:

make

На все вопросы о лицензионных соглашениях вводим 1 и жмём Enter.

Сделаем скрипт запуска. Для этого в папке /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
test -x $DAEMON || exit 0
case "$1" in
start)
echo Starting SoftEther VPN Server...
$DAEMON start
touch $LOCK
;;
stop)
echo Stopping SoftEther VPN Server...
$DAEMON stop
rm $LOCK
;;
restart|reload)
echo Reloading SoftEther VPN Server...
$DAEMON stop
sleep 3
$DAEMON start
;;
*)
echo Usage: $0 "{start|stop|restart}"
exit 1
esac
exit 0

По традиции пикабу не позволяет выкладывать скрипты и конфиги в нормальном структурированном виде. Работать будет и так, за красотой идём сюда.

И установим ему права 0755


Создадим папку /var/lock/vpnserver

mkdir /var/lock/vpnserver

Проверим работу сервера.

Введём команды:

/etc/sevpn/vpnserver/vpncmd

В появившемся запросе введём 3 и нажмём Enter.

Далее введём команду

check

Будет выполнено шесть тестов и в ответ на каждый мы должны получить Pass

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

Отлично. Выходим из VPN Tools командой

exit

Запустим наш сервер

/etc/rc.d/init.d/sevpnserver start

Опять вводим

/etc/sevpn/vpnserver/vpncmd

Вводим 1, а потом два раза жмём Enter. Появится приглашение:

VPN Server>

Вводим

ServerPasswordSet

И вводим два раза пароль. Это административный пароль сервера. Он открывает доступ ко всем настройкам и управлению. Пароль должен быть стойким к перебору: не менее 10 символов, верхний и нижний регистр, цифры, спецсимволы.


Чтобы выйти из режима администрирования (когда приглашение командной строки имеет вид VPN Server> ) введите

exit

Теперь установим на свой компьютер консоль управления для настройки сервера. Опять идём на страницу проекта и выбираем

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

Скачиваем Server Manager по получившейся ссылке и запускаем установку.

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

Затем всё время «Далее» и «Готово». В появившемся окне

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

Жмём «New Setting» и заполняем параметры Setting Name (любое понравившееся имя) и HostName (IP-адрес вашего сервера)

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

Жмём Connect и вводим административный пароль VPN сервера. Если пароль введен правильно, консоль подключится и запросит первоначальную конфигурацию. Выбираем как на скриншоте:

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

Соглашаемся

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

Придумываем имя виртуальному хабу

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

На следующем шаге мы можем выбрать имя для нашего VPN сервера. Это позволит в дальней, благодаря службе Dynamic DNS, обращаться к нашему серверу не только по IP-адресу, но и по имени (обведено зелёным цветом).

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

Выберем протокол и придумаем PSK ключ (т.е. еще один стойкий пароль). Этот ключ, по сути, секретная фраза необходимая для первоначального соединения между клиентом и сервером VPN. SoftEther не рекомендует делать его больше 9 символов, так это вроде вызывает баги в Android.

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

И откажемся от VPN Azure

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

На следующем шаге создадим нового пользователя

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

Настраиваем пользователя. Этот пользователь будет у нас для подключения с компьютера/ноутбука (т.е. Windows или Linux). Обязательно заполняем поле User Name. Поля Full Name и Note не обязательны. Выбираем аутентификацию по сертификатам (Individual Certificate Authentication) и жмём Create Certificate

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

Заполняем необходимые поля. Поля Organization, Country, State, Locale заполняем любыми значениями. Длительность действия сертификата рекомендую ставить 365 дней (но тут уж как сами захотите), длину ключа 4096 бит.

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

Жмём ОК и выбираем формат и место сохранения ключей. Также вы можете указать пароль для сертификата (обведено зелёным). Тогда при каждом подключении клиента к серверу нужно будет вводить пароль. Так, несомненно, лучше, но не очень удобно. Выбирать вам. Я всегда рекомендую делать сертификаты с паролями для тех устройств, которые вы не можете полностью контролировать (рабочий компьютер) или которые можно легко потерять, т.е. носимые устройства (ноутбук, смартфон).

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

Нажимаем ОК и указываем имя файла сертификатов (будут сформированы открытый и закрытый сертификаты) и куда сохранить . В окне создания пользователя жмём ОК.


В окне VPN Easy Setup Tasks жмём Close.


Теперь выбираем наш хаб и жмём Manage Virtual Hub

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

Зайдем в настройки NAT

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

Проверяем, что SecureNAT выключен (обведённая зелёным кнопка не активна) и жмём SecureNAT Configuration

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

Настраиваем как на скриншоте и жмём OK и Exit


Теперь настроим Local Bridge (мост, по которому VPN будет общаться с внешним миром).

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

Если появится предупреждение о недоступности физического LAN адаптера, просто жмём OK

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

И жмём Exit

Проверим, что наш виртуальный интерфейс действительно создался. В консоли putty выполним команду

ifconfig tap_softether

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

[root@vps00000 ~]# ifconfig tap_softether
tap_softether: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::2ac:ceff:fec4:484f prefixlen 64 scopeid 0x20<link>
ether 00:ac:ce:c4:49:4f txqueuelen 500 (Ethernet)
RX packets 158 bytes 10938 (10.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 136 bytes 11232 (10.9 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Установим DNSMasq

yum -y install dnsmasq

Создадим файл /etc/dnsmasq.conf со следующим содержимым

interface=tap_softether
dhcp-range=tap_softether,10.8.0.2,10.8.0.200,12h
dhcp-option=tap_softether,3,10.8.0.1
server=8.8.8.8

IP адреса вписываете те, которые мы запомнили из настроек SecureNAT (см. выше). Сохраняем и закрываем файл.


Лимит на картинки кончился. Потому конец первой части. Часть вторая.

Вы смотрите срез комментариев. Показать все
9
Автор поста оценил этот комментарий

На мой взгляд удобнее взять готовый контейнер докера. Хотя настравивать все равно придется.

И как на зло, это поделие без гуя почти не настраивается, а гуй только под винду.

раскрыть ветку (31)
4
Автор поста оценил этот комментарий

Без гуя настраивается, но крайне тяжело.

раскрыть ветку (8)
3
Автор поста оценил этот комментарий

У гуя очень широкие возможности, причем для гуя не нужно поднимать никаких web-серверов. Это отличная особенность данного решения.

раскрыть ветку (6)
Автор поста оценил этот комментарий

Все по мануалу настроил, но что-то не взлетает.

можно получить совет в диалоге онлайн? )

скайп и вконтактик как ник тут.

Туннель поднимается, не получаю ip от сервера. Схема довольно необычная, боюсь грамотно ее тут описать не смогу.

раскрыть ветку (5)
раскрыть ветку (4)
Автор поста оценил этот комментарий

Зашел на канал, писать не могу.
это норма?

раскрыть ветку (3)
Автор поста оценил этот комментарий

попробуй в личку мне написать

раскрыть ветку (2)
Автор поста оценил этот комментарий

Это как?

В канале тебя непонятно как найти, тут лички нет.

раскрыть ветку (1)
Автор поста оценил этот комментарий
Телеграм @secfall_admin
Автор поста оценил этот комментарий

Вполне настраивается и без гуя, но есть один момент. Надо не ужасной встроенной командной строкой пользоваться, а править файл конфига.

1
Автор поста оценил этот комментарий
Ну для стороннего контейнера всегда есть риск наличия бекдоров и тд
раскрыть ветку (5)
Автор поста оценил этот комментарий
Это конечно да, но такая же вероятность, что в самом софтэзере будет бекдор.
раскрыть ветку (4)
1
Автор поста оценил этот комментарий

Линуховый софт обычно опенсорс и ставится из сравнительно безопасных репозиториев, что дает определенную гарантию, а вот левый докер-образ довольно трудно проверить

раскрыть ветку (3)
Автор поста оценил этот комментарий

Ну многие образы тоже собраны из того-же опенсурса и часто Dockerfile доступен для проверки.

От части это как ставить проприетарь из run "пакетов", но хоть немного но огорожено.

И сейчас не редкость когда авторы софта сами пакетируют в докер, так что ести ты ставил deb'ы от автора а не мантейнера твоего дистра ты в опасноти ?)

раскрыть ветку (1)
Автор поста оценил этот комментарий
Может поможете? Никак не могу заменить сертификат RDP на Windows Server 2012. В 2008 Сервере все было гораздо проще.
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Не, про винду не спрашивайте, я линукс-кернел/юзер дев.

Автор поста оценил этот комментарий
А не подскажите по поводу докера, есть мануалы для умственно отсталых чайников? а то я понимаю что это что-то типа уже собранной виртуальной машины, но более детально не понимаю
раскрыть ветку (11)
Автор поста оценил этот комментарий
Это система управления лёгкой виртуализации (т.е. без гипервизора).
И система создания и дистрибуции образов. Т.е. нужен тебе какой-то софт выкачиваешь образ и запускаешь с параметрами.
раскрыть ветку (10)
1
Автор поста оценил этот комментарий
Неа, ничего не понятно, надо на пальцах показать
раскрыть ветку (9)
Автор поста оценил этот комментарий

Тогда стоит поискать какую-нибудь статью на том-же хабре.


Вот пример установки и запуска контейнера с софтэзером:


docker volume create --name softether-logs

docker run -d -v /srv/softether/vpn_server.config:/usr/local/vpnserver/vpn_server.config -v softether-logs:/var/log/vpnserver --net host --cap-add NET_ADMIN --name softether frosquin/softether


Или вот GOGs:


docker run --detach --hostname=gogs.lan --publish 8082:3000 --publish 2222:22 --name gogs --restart always --volume /srv/gogs:/data gogs/gogs:latest

раскрыть ветку (8)
Автор поста оценил этот комментарий
Ну, пример без описания что конкретно значат параметры команды как-то не сильно понятней стало.
Как у юзера для которого виртуализация это виртуалбокс, есть пара дурацких вопросов по докеру:
- а докер только под юниксами может работать или и под виндой тоже?
- а как выглядит образ контейнера, это файл типа vmdk или vhd
- а управлять образами можно только из под консоли, никакого гуя нету?
- а как собирать образы с нужным софтом, а как потом обновлять софт в этом образе, как добавить другой софт в образ?
- как настроить сеть в образе, как настроить взаимодействие образов между собой по сети, как ограничить доступ к образу по сети
ну и т.д
Например хочу я поднять докер контейнер с постгресом, как настроить сам докер и как потом управлять постгресом, как обновить версию постгреса и т.д
раскрыть ветку (7)
Автор поста оценил этот комментарий
Не там вопросы. Тема широкая и отлично документированная. И на русском тоже.
Под серверную Винду поддержка докера анонсирована.
раскрыть ветку (2)
Автор поста оценил этот комментарий
Да, спасибо.
Я уже нагуглил видосы на ютубе, просто даже продвинутому пользователю винды не так просто сходу разобраться в контернейной виртуализации.
раскрыть ветку (1)
Автор поста оценил этот комментарий
Сносите со своего пк/ноутбука Винду и ставите linux mint. Та же винда, но есть нюансы (да-да, как в анекдоте). Первые полгода будет трудно, но потом перейдёте на убунту и станет легче.
И да, докер не очень корректно называть виртуализацией.
Автор поста оценил этот комментарий

Образ, а хз как он выглядит, на машине это куча поддеревьев фс склеенных aufs (layers).

Главное, что его можно собрать из простого текстового файла (Dockerfile) в котором прописаны все шаги. Далее можно загрузить в репозиторий, свой локальный или публичный.


С обновлениями я хз, простейший путь это скачать новый образ (docker pull), остановить старый, удалить и запустить по новой docker run.

Есть еще docker-compose, который позволяет сохранить настройки (параметры run) в yaml файле, но я им не пользуюсь.

раскрыть ветку (2)
Автор поста оценил этот комментарий

Ну наверное там есть доля правды, я его не использовал на крупных масштабах.

Но это очень удобный вариант получить нужное окружение для разработки (туже центось) без лишних проблем.

CI с использованием докера имхо удобнее классического дженкинса.

Автор поста оценил этот комментарий

капец, а альтернативы этому докеру есть? что-то надёжнее и проверенное временем? FreeBSD Jail?

Автор поста оценил этот комментарий
Во-во, только хотел спросить есть ли линуксовые варианты. Хотя, наверное, будут
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку