【发布时间】:2022-01-13 02:25:35
【问题描述】:
我想为我的 OpenVPN 用户实施用户名和密码验证。那么会有多个用户,所有这些用户名和密码存储在哪里以及如何验证它们?
【问题讨论】:
标签: openvpn
我想为我的 OpenVPN 用户实施用户名和密码验证。那么会有多个用户,所有这些用户名和密码存储在哪里以及如何验证它们?
【问题讨论】:
标签: openvpn
我使用了一个自定义的 python 脚本和数据库来验证用户名和密码。
#!/usr/bin/env python3
import sys
import sqlite3
DB_FILE = 'openvpn_dashboard/db.sqlite3'
def main():
# First arg is a tmp file with 2 lines: username and password
with open(sys.argv[1], 'r') as tmpfile:
username = tmpfile.readline().rstrip('\n')
password = tmpfile.readline().rstrip('\n')
creds = get_password(username)
if not creds:
print(f'>> user {username} not defined.')
sys.exit(2)
# Verify password.
if password != creds[0][1]:
print(f'>> Bad password provided by user {username}.')
sys.exit(3)
sys.exit(0)
def get_password(username):
db = sqlite3.connect(DB_FILE)
cursor = db.cursor()
cursor.execute('''select username, password from openvpn_openvpnuser where username=?''', (username,))
creds = cursor.fetchall()
db.close()
return creds
if __name__ == '__main__':
main()
【讨论】:
auth-user-pass-verify 的重点是您可以选择想要验证您的用户的任何方式。以下是一些更受欢迎的答案:
编写您喜欢的任何脚本来获取您收到的用户名/密码信息并执行相关的身份验证步骤。
【讨论】: