@No_NickName_Avatar

Почему не работает OpenVPN Сервер?

Здравствуйте! Имеется компьютер с Windows 8.1 на борту. На нём установлен сервер OpenVPN
Конфиг сервера
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)
Конфиг Users.pw
User_VPN1
G123456j

User_VPN2
j123456G

При подключении клиента выдает ошибку:
Неверное имя пользователя или пароль
хотя всё правильно. Что делать и как настроить OpenVPN?

Заранее благодарен за ответ!
  • Вопрос задан
  • 813 просмотров
Пригласить эксперта
Ответы на вопрос 1
Ziptar
@Ziptar
Дилетант широкого профиля
auth-user-pass-verify auth.vbs via-file

Ну, Вы понимаете, что это только дополнительная аутентификация?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы