linux上搭建的openvpn
openvpn使用mysql進行用戶的驗證
通過對openvpn日志的監控,實現對openvpn登錄失敗5次的用戶進行鎖定,一天后自動解鎖
#!/usr/bin/env python3 #-*- coding:utf8 -*- '''腳本對登錄VPN失敗次數超過5次的用戶進行鎖定''' import time import re import os file = open('/etc/openvpn/openvpn.log', 'r') failname = {} #使用字典對登錄失敗用戶次數進行統計 def get_blackname(line): blackname = [] e = r"\'([\s\S]*)\'" #過濾出登錄失敗的用戶名 fail_name = re.findall(e, line) for i in fail_name: if i not in failname: failname[i] = 1 else: failname[i] += 1 if failname[i] >= 5: #登錄失敗次數超過5次使用mysql_ban函數進行處理 mysql_ban(i) failname.clear() #禁用后清空字典 #定義處理登錄失敗用戶處理函數 def mysql_ban(blackname): cmd = 'mysql -uroot -pmysql -h 127.0.0.1 -P 4045 -e ' \ '"update vpnuser set active=0 where name=\'%s\'" vpn ' % blackname os.system(cmd) while 1: #監控openvpn的日志文件 where = file.tell() line = file.readline() if not line: time.sleep(1) file.seek(where) elif 'AUTH-PAM' in line: get_blackname(line)
需要配合crontab執行shell腳本才能實現自動解鎖,shell腳本如下
然后根據需要設置每天幾點解鎖
> /etc/openvpn/openvpn.log mysql -uroot -pmysql -h 127.0.0.1 -P 4045 -e "update vpnuser set active=1 where active=0" vpn
以上這篇使用python實現openvpn的登錄次數限制方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
