Меню

Вход в Дримкас

Пароль

Забыли пароль ?


Впервые в Дримкас?Зарегистрируйтесь

Регистрация в Дримкас

Имя*

Фамилия*

Адрес электронной почты*

Пароль*

Повтороить пароль*

Уже зарегистрированы?Войти

Отправить пароль

Чтобы сбросить пароль для https://help.dreamkas.ru, введите свой адрес электронной почты, и вам будет отправлено письмо с инструкциями.

Адрес электронной почты*

Помните пароль?Войти

Назад к Обслуживание кассы

Настроить ОpenVpn сервера и клиента на Вики Мини 10

img

Татьяна Корешкова

2 года назад Обновлено


Подробная документация по настройке есть на официальном сайте и доступна по ссылке https://openvpn.net/community-resources/


Внимание! 

1. Для установки OpenVpn могут потребоваться привилегии супер-пользователя sudo

2. На Вики Мини 10 версия клиента  2.66


OpenVpn корректно работает на Ubuntu, Debian, AlmaLinux, Rocky Linux, CentOS или Fedora. 


Установите OpenVpn



Для ОС Linux перейдите на сайт https://github.com/Nyr/openvpn-install и скачайте скрипт.


Для ОС Windows на сайт https://openvpn.net/community-downloads/ 

Настройка OpenVPN на ОС Windows и ОС Linux  схожа. Мы настраивали на примере Ubuntu.


Выполните следующие команды: 


cd /root

wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh


Результат выполнения:


В папке /root появится openvpn-install.sh – основной скрипт для работы с OpenVPN


Добавьте клиентское подключение



Запустить скрипт openvpn-install.sh


Запустите скрипт openvpn-install.sh Выберите опцию Add a new client → Укажите наименование client.ovpn → Нажмите Enter


Клиентский конфиг добавится в папку /root/*client.ovpn    


Далее файл нужно перенести на кассу одним из двух способов: через кассовую программу (перезагрузка не понадобится) и через сервисный режим (нужно будет перезагрузить):

    

  • Добавить конфигурацию клиента на кассу Вики Мини 10 в кассовой программе: 

 

Начиная с версии 11.0.2 в кассовой программе предусмотрен сценарий подключения в режиме VPN через USB-носитель. 


Для этого вставьте USB-носитель с файлом client.ovpn в кассу → В кассовой программе перейдите в «Меню» → «Настройка» → «Сеть» → «OpenVpn» → Включите тумблер «Соединение установлено в положение» 


openvpn.png


Откроется окно выбора нужного конфигурационного файла (если файлов несколько). Выберите нужный.


opvn.png


Откроется окно с сообщением «Настройки OpenVPN изменены»


Касса в режиме работы с VPN-сервером. 


Чтобы узнать текущий IP-адрес кассы перейдите в  «Меню» → «Настройка» → «Сеть» → «OpenVpn»


  • Добавить конфигурацию клиента на кассу Вики Мини 10 в сервисном режиме:

  • Перейдите в /opt → Создайте папку networks → Скопируйте в неё файл client.ovpn → Перезагрузите кассу  


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


  

Настройте конфигурационный файл клиента


Параметры comp-lzo и mssfix сервер при создании client.ovpn не добавляет. Оба параметра рекомендуем включить в конфигурацию и клиента и сервера вручную.



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

 

client - говорим что мы подключаемся как клиент

dev tun - указываем такое же устройство, как и у vpn-сервера

proto udp - используем UDP, так как vpn-сервер тоже на UDP

remote *ip-адрес сервера* 1194 - указываем адрес vpn-сервера

resolv-retry infinite - резолвим VPN-сервер до бесконечности, полезно после потери соединения и подключения снова (например после suspend в ноутбуках)

nobind - не создаем постоянный порт для подключения клиента

comp-lzo - включаем LZO-компрессию трафика

mssfix – немного улучшает ping

persist-key - при получении сигнала SIGUSR1 или срабатывания ping-restart не нужно перечитывать сертификаты

persist-tun - при получении сигнала SIGUSR1 или срабатывания ping-restart не нужно пересоздавать TUN/TAP устройства

remote-cert-tls server

auth SHA512

cipher AES-256-CBC - используемый тип шифрования пакетов (должен совпадать с серверным)

ignore-unknown-option block-outside-dns

verb 3 - уровень логов от 0 до 11

<ca>

-----BEGIN CERTIFICATE-----

*сертификат, сгенерированный сервером автоматически*

-----END CERTIFICATE-----

</ca>

<cert>

-----BEGIN CERTIFICATE-----

*сертификат, сгенерированный сервером автоматически *

-----END CERTIFICATE-----

</cert>

<key>

-----BEGIN PRIVATE KEY-----

*ключ, сгенерированный сервером автоматически *

-----END PRIVATE KEY-----

</key>

<tls-crypt>

-----BEGIN OpenVPN Static key V1-----

*ключ, сгенерированный сервером автоматически *

-----END OpenVPN Static key V1-----

</tls-crypt>


Иногда бывают ситуации, когда нужно использовать OpenVPN и авторизацию не по ключам, а по логину и паролю.  Можно так же использовать совместно, для увеличения безопасности оба этих метода. Для этого потребуется изменить конфигурационный файл сервера и клиента.


Добавляем в конфигурационный файл сервера следующие строки:

 

auth-user-pass-verify /etc/openvpn/verify.sh via - file - отвечает за авторизацию по логину паролю. При каждом подключении будет запускаться файл /etc/openvpn/verify.sh, который будет производить проверку.

client-cert-not-required - при проверке логина/пароля не будет запрашиваться проверка сертификата

username-as-common-name - позволяет использовать для дальнейшей идентификации клиента не CommonName (имя из предъявленного сертификата клиента), а введенный UserName.

tmp-dir /etc/openvpn/tmp - путь к временной папке, где будет создавать файл с переданным логином/паролем, который потом будет передаваться как аргумент в наш скрипт проверки для сверки с файлом паролей

script-security 2 – позволяет выполнять внешние скрипты


Если нужно дополнительно проверка сертификатов, тогда нужно будет убрать опцию client-cert-not-required

 

Cкрипт проверки verify.sh:

 

#!/bin/sh

USERS=`cat /etc/openvpn/user.pass`

vpn_verify() {

if [ ! $1 ] || [ ! $2 ]; then

#echo "No username or password: $*"

exit 1

fi

for i in $USERS; do

if [ "$i" = "$1:$2" ]; then

exit 0

fi

done

}

if [ ! $1 ] || [ ! -e $1 ]; then

exit 1

fi

vpn_verify `cat $1`

exit 1

 

При создании скрипта необходимо дать ему права на запуск (chmod u+x 777)


 

Далее следует создать файл /etc/openvpn/user.pass в котором будут храниться пароли пользователей, и указать логин и пароль в формате user:password. Учетные данные нескольких пользователей можно указать через пробел в формате user1:pass1 user2:pass2 ...


Настройте конфигурационный файл OpenVpn сервера


Для корректной работы созданного подключения следует правильно сконфигурировать OpenVPN сервер. 


Конфиг находится в папке: /etc/openvpn/server/server.conf


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

 

local 203.0.113.42 - можете указать конкретный IP-адрес на котором надо слушать (например, если у вас несколько внешних сетевых интерфейсов)

или

local 0.0.0.0 предпочтительно

 

port 1194 - порт который будет слушать

proto udp используем UDP, так как он экономичнее по трафику, вы можете также указать TCP

dev tun использовать управляемый IP-туннель, также возможно использовать "tap" (ethernet tunnel)

ca ca.crt путь до сгенерированного нами файла корневого сертификата

cert server.crt путь до сгенерированного файла сертификат сервера

key server.key - путь до сгенерированного нами файла приватного ключа сервера

dh dh.pem - путь до сгенерированного нами файла с параметрами Diffie Hellman (используется только для подключения через TLS-сервер)

auth SHA512

tls-crypt tc.key

topology subnet – параметр для экономии адресов

server 10.8.0.0 255.255.255.0 - выделяет IP-адреса с диапазоном "10.8.0.0-10.8.0.0.255", причем адрес "10.8.0.0.1" займет сам сервер, остальное для клиентов;

ifconfig-pool-persist ipp.txt - файл, в котором будут храниться связи "профиль клиента, выделенный ip-адрес", и после переподключения будет выдан снова прежний адрес;

keepalive 10 120 - устанавливаем количество секунд для ping и ping-restart соответственно (нужно для поддержания подключенного состояния между соединениями к VPN-серверу);

cipher AES-256-CBC используемый тип шифрования пакетов

comp-lzo включаем LZO-компрессию трафика (этот параметр должен быть включен в конфиг client.ovpn)

mssfix - немного улучшает ping

persist-key - при получении сигнала SIGUSR1 или срабатывания ping-restart не нужно

persist-tun - при получении сигнала SIGUSR1 или срабатывания ping-restart не нужно пересоздавать tun/tap устройства

verb 3 - уровень логов, от 0 до 11, детализация по нарастающей:


0 - только фатальные ошибки; 1 - загрузочная информация, информация о соединении, сетевые ошибки; 2,3 - TLS данные и маршрутная информация; 4 - показывает параметры; 5 - показывает 'RrWw' символы в консоли для каждого пакета, отправленные и принятые по TCP/UDP (caps) или tun/tab (lc); 6-11 - отладочная информация, повышающая детализацию лога;

 

crl-verify crl.pem

explicit-exit-notify

Представленные ниже строки необязательны, но в руководстве приведены для общего понимания, так как в базовом конфиге они присутствуют. Они не должны работать, поэтому стоит перед ними поставить символ # или удалить.

 

#push "dhcp-option DNS 8.8.8.8"

#push "dhcp-option DNS 8.8.4.4"

#push "block-outside-dns"

#user nobody понижаем пользовательские привилегии VPN-сервера

#group nogroup понижаем пользовательские привилегии VPN-сервера

#server-ipv6 fddd:1194:1194:1194::/64

#push "redirect-gateway def1 ipv6 bypass-dhcp"


Если вы настраиваете аутентификацию по логину и паролю, то добавляем в конфигурационный файл клиента следующие строки:

 

auth-user-pass c:\\vpn\\pass.txt

и создаём соответственно файл pass.txt, где будет находится логин и пароль в таком виде:

username

password

 

Если в параметре auth-user-pass убрать путь к файлу, будет запрашиваться логин/пароль.


Также можно избежать использования дополнительного файла для хранения паролей pass.txt, добавив в конфигурационный файл client.ovpn следующие строки после указания основных параметров:


<auth-user-pass>

login

password

</auth-user-pass>


На ОС Windows следует использовать следующий bat-скрипт:


@echo off

rem copy %1 C:\Users\Alex\OpenVPN\config\server

SETLOCAL EnableDelayedExpansion

set /A count=0

for /F "tokens=*" %%A in (%~1) do (

 if !count!==1 (

  set password=%%A

  set /A count=2

 )

 if !count!==0 (

  set username=%%A

  set /A count=1

 )

)

if "%username%"=="login" (

 if "%password%"=="password" (

exit 0

 )

)

exit 1

 

Логин и пароль следует указывать непосредственно в скрипте в значениях "%username%"=="login" и "%password%"=="password"




Была ли статья полезной?

Комментарии

Комментариев 1

Авторизуйтесь, чтобы оставить свой комментарий

Загрузка комментариев...