Без категорииНастройка сети

Nextcloud — Настройка SoftEther VPN Client на Linux Debian/Ubuntu/Centos (связка Linux-Windows)

На сервере установлен и настроен VPN через программное обеспечение SoftEter VPN Server, настроены клиенты с доступом по сертификату, встала задача настроить доступ клиента из Linux для проброса SMB в Nextcloud

Все документацию по приведенным ниже командам можно найти тут: 

https://www.softether.org/4-docs/1-manual/6._Command_Line_Management_Utility_Manual/

Скачиваем SoftEteh VPN for Linux, распаковываем загруженный файл (tar.gz).

Извлечение произвел в домашний каталог ( /root/vpnclient )

1. Установка

Открываем терминал (Ctrl+Alt+T) и вводим команды:

 cd ./vpnclient

Переходи в домашний каталог и вводим “make” принимаем лицензионные соглашения: 1

После завершения команды “make” запускаем установленный VPN клиент из того же каталога:

sudo ./vpnclient start

2. Первоначальная настройка vpn client

Чтобы перейти к конфигурированию клиентской части переходим в командную строку VPN-клиента:

sudo ./vpncmd

Перед настройкой проверим готовность клиента:

Выбираем “3” чтобы попасть в раздел Use of VPN Tools (certificate creation and Network Traffic Speed Test Tool

Выполняем команду check

Если все тесты пройдены без ошибок, можно переходит дальше, выход из vpncmd Ctrl+C.

После выхода, опять выполняем команду: “sudo ./vpncmd” выбираем пункт “2” (Management of VPN Client)

Программа запросит IP адрес хоста, нажимаем “Enter” (по умолчанию подключается к “localhost”).

2.1 Создание и настройка VPN адаптера, и аккаунта для подключение к VPN сети

  •  Создайте виртуальный интерфейс для подключения к VPN-серверу:

 – NicCreate vpn    (где “vpn” это имя виртуального адаптера), другие команды (NicDelete – удалить адаптер, NicList – список адаптеров)

  • Создайте учетную запись VPN-клиента с помощью следующей команды

– AccountCreate NameConnect /SERVER:<IPSERVER>:5555 /HUB:<NAMEVIRTUALHUB> /USERNAME:<username> /NICNAME:<name nic adaptera>

– ПРИМЕР: AccountCreate Terminal /server:91.91.91.91:5555 /HUB:VPN /USERNAME:Clickup /NICNAME:VPN  

 (где “NameConnect” это просто имя подключения), другие команды (AccountDelete – удалить, AccountList – список)

  • Настройка учетной записи по вашим данным для подключения по аналогии как в Windows клиенте:

Если вы получите сообщение “The command completed successfully”, то все сделано верно, c помощью AccountList можно посмотреть созданное подключение.

ВАЖНО! Варианты аутентификации на сервере.

В некоторых случаях необходимо указать тип аутентификации пользователя и указать необходимые параметры. Чтобы изменить эту информацию, вы можете использовать такие команды, как AccountAnonymousSet, AccountPasswordSet, AccountCertSet и AccountSecureCertSet.

 AccountAnonymousSet – анонимная аутентификация

 AccountPasswordSet– аутентификация по пользователю и паролю

 AccountCertSet – аутентификация по пользовательскому сертификату

 AccountSecureCertSet– аутентификация пользователя по смарт-картам

В нашем случае аутентификация будет происходить по пользовательскому сертификату AccountCertSet, для этого выполняем команду:

 – AccountSecureCertSet [имя] [/ CERTNAME: путь до сертификата] [/ KEYNAME: путь до ключа]

 – ПРИМЕР: AccountCertSet Terminal /LOADCERT:/home/clickup/Serv/Terminal.cer /LOADKEY:/home/clickup/Serv/Terminal.key

После выполнения у вас запросит пароль для сертификата (если он установлен).

Подключение готово, можно посмотреть список подключений выполнив команду AccountList, в статусе подключение будет видно его текущее состояние (offline, connected).

Чтобы подключиться необходимо выполнить команду: 

 – AccountConnect Terminal   (где Terminal это имя созданного аккаунта для подключения)

После чего статус должен измениться на Connected.

AccountStartupSet Terminal  (Для того чтоб после перезагрузки Connect производился я автоматически_)

Если все сделано верно то вы подключитесь к VPN сети со своими учетными данными.

AccountList (Проверяем)

На сервере VPN вы сможете увидеть активное подключение, работающее пока по Ipv6.

В CentOS нужно вручную создать виртуальный интерфейс: /etc/sysconfig/network-scripts/ifcfg-vpn_vpn

DEVICE=vpn_vpn
BOOTPROTO=none
IPADDR=192.168.159.120
ONBOOT=yes

DEVICE=vpn_vpn
BOOTPROTO=dhsp
ONBOOT=yes
systemctl restart network

3. Получение IP адреса для виртуального адаптера и настройка маршрутизации.

Прежде чем начать необходимо проверить включен ли “ip forward” (маршрутизация), выполняем команду:

cat /proc/sys/net/ipv4/ip_forward    если после выполнения возврат “1”, то все включено, если “0” то выполняем команду:

sudo nano /etc/sysctl.conf    (переходим к редактированию файла конфига), находим строку net.ipv4.ip_forward=1 и раскомментируем ее, сохраняем файл.

и проверяем cat /proc/sys/net/ipv4/ip_forward  команда должна вернуть “1”.

Получение IP адреса от сервера.

В терминале выполняем команду:

- sudo dhclient <virtual_network_adapter_name>

– Пример: sudo dhclient vpn_vpn

VPN-сервер должен выдать вам IP-адрес для вашего виртуального адаптера (если на сервере не отключен DHCP). Данный способ у меня не сработал в centos 7 - Хостинг провайдер: https://ihc.ru/

Либо IP адрес можно прописать вручную выполнив команду для OS Debian, Ubunta

sudo nano /etc/network/interfaces 

Для OS Centos я прописал вот такие настройки:

sudo nano /etc/sysconfig/network-scripts/ifcfg-vpn_vpn

Автозапуск SoftEther VPN Client

[root@Client home/vpnclient]# mkdir /usr/bin/vpnclient
[root@Client home/vpnclient]# cp vpn* /usr/bin/vpnclient/
[root@Client home/vpnclient]# cp hamcore.se2 /usr/bin/vpnclient/
[root@Client home/vpnclient]# nano /etc/init.d/vpnclient 
#!/bin/sh
# chkconfig: 2345 99 01
# description: SoftEther VPN Client
DAEMON=/usr/bin/vpnclient/vpnclient
LOCK=/var/lock/subsys/vpnclient
test -x $DAEMON || exit 0
case "$1" in
start)
$DAEMON start
touch $LOCK
systemctl restart network
;;
stop)
$DAEMON stop
rm $LOCK
;;
restart)
$DAEMON stop
sleep 3
$DAEMON start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0

Запустите демон и убедитесь, что он запустится после перезагрузки

[root@Client home/vpnclient]# chmod 755 /etc/init.d/vpnclient
[root@Client home/vpnclient]# service vpnclient start
SoftEther VPN Client Service Started.
[root@Client home/vpnclient]# chkconfig --add vpnclient 

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

Завершающем шагом будет указание статических маршрутов, выполняем команду, чтобы увидеть таблицу маршрутизации:

 sudo netstat -rn  

 ip route

Количество маршрутов зависит от сложности построения сети и как далеко необходимо пробиться в нашем случае схема была следующая:

Команда трассировки:  sudo traceroute -I 10.10.10.1 (параметр -I “icmp” отправлять пакеты из Linux, которые понимает Windows)

Поэтому в нашем случае достаточно 2 маршрутов.
sudo ip route add 10.10.10.0/24 dev vpn_vpn
sudo ip route add 192.168.100.0/24 via 10.10.10.1

Возможно, вам понадобится больше маршрутов.

Доступ был получен во внутреннюю сеть. Папки проброшены через SMB

Полезные ссылки

0

Автор публикации

не в сети 6 месяцев

Илья Коковин

Аватар 0
Комментарии: 0Публикации: 34Регистрация: 30-05-2019

Добавить комментарий

Ваш адрес email не будет опубликован.

Авторизация
*
*
Регистрация
*
*
*
Пароль не введен
*
Генерация пароля