Python语言技术文档

微信小程序技术文档

php语言技术文档

jsp语言技术文档

asp语言技术文档

C#/.NET语言技术文档

html5/css技术文档

javascript

点击排行

您现在的位置:首页 > 技术文档 > Python网络爬虫

使用python实现openvpn的登录次数限制方法

来源:中文源码网    浏览:1489 次    日期:2024-05-03 23:26:45
【下载文档:  使用python实现openvpn的登录次数限制方法.txt 】


使用python实现openvpn的登录次数限制方法
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的登录次数限制方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持中文源码网。

相关内容