日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

使用python實現(xiàn)openvpn的登錄次數(shù)限制方法

系統(tǒng) 2163 0

linux上搭建的openvpn

openvpn使用mysql進行用戶的驗證

通過對openvpn日志的監(jiān)控,實現(xiàn)對openvpn登錄失敗5次的用戶進行鎖定,一天后自動解鎖

            
#!/usr/bin/env python3
#-*- coding:utf8 -*-
'''腳本對登錄VPN失敗次數(shù)超過5次的用戶進行鎖定'''
import time
import re
import os
file = open('/etc/openvpn/openvpn.log', 'r')
failname = {} #使用字典對登錄失敗用戶次數(shù)進行統(tǒng)計
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: #登錄失敗次數(shù)超過5次使用mysql_ban函數(shù)進行處理
   mysql_ban(i)    
   failname.clear()  #禁用后清空字典
#定義處理登錄失敗用戶處理函數(shù)
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: #監(jiān)控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執(zhí)行shell腳本才能實現(xiàn)自動解鎖,shell腳本如下

然后根據(jù)需要設(shè)置每天幾點解鎖

            
> /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實現(xiàn)openvpn的登錄次數(shù)限制方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

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

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 囊谦县| 巴里| 虹口区| 汶上县| 平凉市| 兴和县| 滁州市| 枣庄市| 多伦县| 莱州市| 通辽市| 宣威市| 长沙县| 榆林市| 资阳市| 运城市| 夏津县| 历史| 云和县| 略阳县| 外汇| 云梦县| 城固县| 青海省| 北辰区| 新民市| 永新县| 习水县| 高陵县| 会宁县| 五原县| 木里| 门头沟区| 庆城县| 子洲县| 开平市| 五大连池市| 米林县| 慈利县| 翁牛特旗| 行唐县|