N
N
No_NickName_Avatar2019-07-24 21:59:15
openvpn
No_NickName_Avatar, 2019-07-24 21:59:15

Why is OpenVPN Server not working?

Hello! There is a computer with Windows 8.1 on board. It has an OpenVPN server installed.

Server config
mode server
dev tap # Поднимаем L2-туннель
dev-node MetroCraftMC
proto tcp-server # Протокол
port 65535 # Порт который слушает впн
# Ключи и сертификаты:
dh C:\\OpenVPN\\ssl\\dh2048.pem 
ca C:\\OpenVPN\\ssl\\ca.crt 
cert C:\\OpenVPN\\ssl\\MetroCraftMC.crt 
key C:\\OpenVPN\\ssl\\MetroCraftMC.key
server-bridge 192.168.1.1 255.255.255.0 192.168.1.60 192.168.1.80 # Пул адресов
cipher AES-256-CBC # Метод шифрования
comp-lzo # Сжатие
persist-key # Проверка ключа
persist-tun # Проверка тоннеля
mssfix # Немного улучшит пинг
keepalive 10 120 # Время жизни клиентов, если не откликнулся — отключает
verb 3 # Уровень отладки
push "dhcp-option DNS 192.168.1.2"
push "dhcp-option DNS 192.168.1.1"
route-gateway 192.168.1.1
route-method exe
route-delay 2
ifconfig-pool-persist ipp.txt
log         openvpn.log
log-append  openvpn.log
client-config-dir ccd
;ifconfig-pool 10.0.0.0 10.0.255.254
route 192.168.0.0 255.255.255.0
topology subnet
auth-user-pass-verify auth.vbs via-file
Authorization config
'VBscript auth.vbs для аутентификации в OpenVPN - auth-user-pass-verify auth.vbs via-file
'(c) 2007  vinni  http://forum.ixbt.com/users.cgi?id=info:vinni
'Support: http://forum.ixbt.com/topic.cgi?id=14:49976
 
' в скрипте производится сравнение имени пользователя без учёта регистра.
' Если нужно иначе - уберите UCase(...) в 2 или 4 местах
 
On Error Resume Next
 
' открываем файл, имя которого передано OpenVPN-ом в скрипт через параметр
Set fso = CreateObject("scripting.filesystemobject")
Set CurrentUserPasswordFile = fso.OpenTextFile(WScript.Arguments(0),1) '1 = for reading
if Err.Number<>0 Then WScript.Quit(1)
 
' читаем из этого файла 2 строки - имя и пароль, которые ввёл пользователь "на том конце"
if CurrentUserPasswordFile.AtEndOfStream then WScript.Quit(1)
UserName=CurrentUserPasswordFile.ReadLine
if CurrentUserPasswordFile.AtEndOfStream then WScript.Quit(1)
Password=CurrentUserPasswordFile.ReadLine
CurrentUserPasswordFile.Close
 
' открываем переменную окружения common_name (это CN предъявленного клиентом сертификата)
' и сравниваем её с введенным именем пользователя.
' если это сравнение не нужно, то следующие 2 строки удалить или закомменировать
CurrentCommonName = CreateObject("Wscript.Shell").ExpandEnvironmentStrings("%common_name%")
if UCase(CurrentCommonName) <> UCase(UserName) then WScript.Quit(1)
 
' открываем наш файл с базой логинов и паролей
' по умолчанию это Users.pw в текущем каталоге
Set UserPasswordFileBase = fso.OpenTextFile("Users.pw",1) '1 = for reading
if Err.Number<>0 Then WScript.Quit(1)
 
' читаем в цикле пары строк, пропуская пустые МЕЖДУ ЭТИМИ ПАРАМИ,
' и сравниваем их с тем, что ввёл пользователь.
Do while not(UserPasswordFileBase.AtEndOfStream)
  NextUserName=UserPasswordFileBase.ReadLine
  if Err.Number<>0 Then WScript.Quit(1)
  if NextUserName<>"" then
' если имя пользователя надо сравнивать с учётом регистра, то удалите здесь UCase(...)
    if UCase(UserName)=UCase(NextUserName) then
      if Password=UserPasswordFileBase.ReadLine then
' если имя и пароль совпали с парой из базы, то завершаем скрипт с результатом 0
' так нужно для OpenVPN'a, это признак успешной аутентификации
        UserPasswordFileBase.Close
        WScript.Quit(0)
      end if
    else
      UserPasswordFileBase.ReadLine
    end if
  end if
Loop
 
' если поиск завершился безуспешно, то завершаем скрипт с результатом 1
' так нужно для OpenVPN'a, это признак НЕуспешной аутентификации
UserPasswordFileBase.Close
WScript.Quit(1)
Config Users.pw
User_VPN1
G123456j
User_VPN2
j123456G

When connecting the client gives an error:
The username or password you entered is incorrect
though everything is correct. What to do and how to set up OpenVPN?
Thanks in advance for your reply!

Answer the question

In order to leave comments, you need to log in

1 answer(s)
Z
Ziptar, 2019-08-02
@Ziptar

auth-user-pass-verify auth.vbs via-file

Well, do you understand that this is only additional authentication?

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question