通过pyrad模块,实现一个简单的radius论证服务。准入规则从数据库获取。

此开发是为了辅助 vmware connection server 作双因子认证,从而实现对安全服务器接入的链接服务器加多一层认证,实现外网连入云桌面的准入控制。

准入规则的修改是简单的表操作,可以结合其它系统来管理(我这边案例是用了泛微的OA流程审批,从而实现准入经过流程审批后生效)

程序运行后,即会开启一个认证服务

设置vmware connection server  的认证

通过上面设置,经过此链接服务器的云桌面客户端就会多加了一层认证,因为我这里只做准入,所以验证对用户是透明的,只是一次录入,通行码即原来ad用户密码。 如下图所示,可以看到有个通行码的认证了。

代码相对简洁:

#!/usr/bin/env python
# -*- coding: utf-8 -*-# Project: radius
# File   : server.py
# Author : Long.Xu <fangkailove@yeah.net>
#          http://gnolux.blog.csdn.net
#          QQ:26564303 weixin:wxgnolux
# Time   : 2022/3/17 20:29
# Copyright 2022 Long.Xu All rights Reserved.from __future__ import print_functionimport logging
import os.pathimport cx_Oracleimport poll
from pyrad import dictionary, packet, serverpoll.install()logging.basicConfig(filename="radius.log", level="DEBUG",format="%(asctime)s [%(levelname)-8s] %(message)s")class FakeServer(server.Server):def HandleAuthPacket(self, pkt):# logging.debug("Received an authentication request")# for attr in pkt.keys():#     logging.debug("%s: %s" % (attr, pkt[attr]))reply = self.CreateReplyPacket(pkt)try:reply.code = packet.AccessRejectif pkt["User-Name"]:userid = pkt["User-Name"][0]#取数据库数据作用户验证db = cx_Oracle.connect('user', 'pwd', '192.168.123.3:1521/ecology')cur = db.cursor()sql = """select GH, XM,kssj, JSSJ, QZSX from ecology.uf_clouddesktop where gh=:userid and  trunc(sysdate,'dd') between to_date(kssj,'yyyy-mm-dd') and  to_date(jssj, 'yyyy-mm-dd')and qzsx = 1 """# sql = "select * from ecology.hrmresource where loginid  = :userid"cur.execute(sql, userid=userid)rows = cur.fetchall()if len(rows) > 0:reply.code = packet.AccessAcceptlogging.debug("%s,AccessAccept" % userid)else:logging.debug("%s,AccessReject" % userid)cur.close()db.close()except Exception as e:logging.error(str(e))self.SendReplyPacket(pkt.fd, reply)def HandleAcctPacket(self, pkt):print("Received an accounting request")print("Attributes: ")for attr in pkt.keys():print("%s: %s" % (attr, pkt[attr]))reply = self.CreateReplyPacket(pkt)self.SendReplyPacket(pkt.fd, reply)def HandleCoaPacket(self, pkt):print("Received an coa request")print("Attributes: ")for attr in pkt.keys():print("%s: %s" % (attr, pkt[attr]))reply = self.CreateReplyPacket(pkt)self.SendReplyPacket(pkt.fd, reply)def HandleDisconnectPacket(self, pkt):print("Received an disconnect request")print("Attributes: ")for attr in pkt.keys():print("%s: %s" % (attr, pkt[attr]))reply = self.CreateReplyPacket(pkt)# COA NAKreply.code = 45self.SendReplyPacket(pkt.fd, reply)if __name__ == '__main__':# create server and read dictionarydicfile = os.path.join(os.path.dirname(__file__), 'dictionary')srv = FakeServer(dict=dictionary.Dictionary(dicfile), coa_enabled=True)# add clients (address, secret, name)srv.hosts["127.0.0.1"] = server.RemoteHost("127.0.0.1", b"Kah3choteereethiejeimaeziecumi", "localhost")srv.BindToAddress("0.0.0.0")print('*' * 70)print('simple radius server for  vmware horizon access control')print('develop by xulong ,weixin:wxgnolux,e-mail:fangkailove@yeah.net')print('*' * 70)print('ip:127.0.0.1,port:1821, secret:xxxxxxxxxxxxxxxxx')print('>>>>>>>>service is running>>>>>>>>>>> ')print('*' * 70)# start serversrv.Run()

python 实现radius认证服务-作为vmware 的双因子认证服务器-实现Horizon外网接入准入控制相关推荐

  1. 宁盾目录成功对接Coremail邮箱,为其提供LDAP统一认证和双因子认证

    近日,宁盾与 Coremail 完成兼容适配,在 LDAP 目录用户同步.统一身份认证及双因子认证等模块成功对接.借此机会,双方将加深在产品.解决方案等多个领域的合作,携手共建信创合作生态,打造信创 ...

  2. 用双因子认证2FA替换Google authenticator谷歌令牌,助力准上市公司实现等保安全审计

    21世纪初,某人力资源科技公司试水HR SaaS赛道,以大客户为目标客群,持续深耕,稳扎稳打,如今已是一家专门为中大型企业提供一体化HR SaaS及人才管理产品/解决方案的头部企业.其产品覆盖了从员工 ...

  3. OWA动态密码短信认证方案,解决outlook邮件双因子认证问题

    OWA(Outlook Web Access),是Exchange邮件的Web访问形式.OWA作为Exchange的Web访问客户端,负责提供邮件Web访问页面.用户只需要使用浏览器通过互联网就能访问 ...

  4. Radius协议工作原理及双因素认证应用

    运维的朋友应该对AAA协议不陌生吧,认证(Authentication).授权(Authorization)和计费(Accounting),是网络安全中进行访问控制的一种安全管理机制,其中Radius ...

  5. 网神防火墙如何启用双因素/双因子认证(2FA/MFA)身份认证

    网神防火墙基于多核处理器架构和自主开发的新一代多核并行操作系统 SecOS,完整实现了状态检测包过滤/应用代理防火墙.IPSec VPN/SSL VPN.抗DDoS攻击.深度内容检测.入侵检测防护.带 ...

  6. 【等保】等保测评中双因素认证是什么意思?等于双因子认证吗?

    等保测评中双因素认证是什么意思?等于双因子认证吗?很多朋友们对于这两个问题不是很清楚,今天我们小编就来给大家回答一下,加深大家的了解. 等保测评中双因素认证是什么意思? [回答]"双因素&q ...

  7. TACACS+协议工作原理及双因素/双因子认证应用

    之前写过一篇<Radius协议认证原理及双因素/双因子认证应用>,TACACS+协议和Radius协议都是AAA协议的一种,核心作用都是认证(Authentication).授权(Auth ...

  8. 九州云腾双因素认证系统_“等保2.0”新标准落地 双因子认证(2FA)成标配...

    2019年5月13日,国家标准新闻发布会正式发布网络安全等级保护制度2.0标准(以下简称"等保2.0"),新标准将于2019年12月1日开始实施,这意味着"等保2.0&q ...

  9. 多因子认证是什么意思?与双因子认证有什么区别?

    为了保障大家的账户安全,往往会采取多种认证方式,例如多因子认证,双因子认证等等.那你知道多因子认证是什么意思?与双因子认证有什么区别? 多因子认证是什么意思? 多因子认证是用两种及两种以上的条件对用户 ...

最新文章

  1. 【Matlab 控制】Simulink仿真+S函数例子
  2. Python Django 基于通用视图实现图片的显示功能代码示例
  3. 传智播客全栈_播客:从家庭学生到自学成才的全栈开发人员
  4. 计算机档案管理的研究及其应用,计算机地质档案管理的研究及其应用.doc
  5. 20172310《程序设计与数据结构》(上)课程总结
  6. Oracle统计大小语句(用户、表、分区表、索引等)
  7. oracle中游标详细用法
  8. epoll监听文件_linux网络编程之epoll源码重要部分详解
  9. 中国农大计算机保研,中国农业大学2021届保研情况
  10. 分享 | 视觉无监督学习新范式:MAE
  11. JAVA 生成二维码 并设置 +失效机制
  12. Excel数据透视表经典教程二《创建数据透视表》
  13. matlab %,Matlab
  14. 李宏毅老师《机器学习》课程笔记-4.1 Self-attention
  15. 液体点滴速度监控报警装置(51单片机)
  16. Web学习的亿点细节---亿点点୧(๑•̀⌄•́๑)૭碉堡了
  17. 数模美赛论文模板(笔记)
  18. 关于ADC使用的经验总结(引用)
  19. MySQL必知必会读书笔记一
  20. OpenCV这么简单为啥不学——1.4、基础标识绘制(绘制线line函数、rectangle函数绘制四边形、circle函数绘制圆形、putText函数绘制文字、putText绘制中文文字)

热门文章

  1. 圆周分孔计算公式表图_圆周分孔计算公式表图_圆周等分系数表(带图示例,版式清晰)...
  2. 《Effective C++》
  3. Nginx upstream
  4. Sidecar及流量拦截机制-下
  5. “离开浪浪山”是假象,80%年轻人下班后还在学习,真实是想先上个山。
  6. 网页 大文件分片上传处理
  7. 九龙证券|逼空式暴涨,这个指数进入技术性牛市!41只科技股翻倍
  8. sw2urdf导入ros2
  9. 黑马程序员----------java7K面试题之银行业务调度系统
  10. 多人对战游戏开发实例之《组队小鸡射击》(附源码)