Answer the question
In order to leave comments, you need to log in
Why is OpenVPN Server not working?
Hello! There is a computer with Windows 8.1 on board. It has an OpenVPN server installed.
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
'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)
The username or password you entered is incorrectthough everything is correct. What to do and how to set up OpenVPN?
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question