通过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. 刷新ImageNet最高分!谷歌大脑华人研究员发布超强Transformer
  2. 网易云信3.3.0版本更新啦!
  3. 8-th Android开发之服务器端
  4. 使用a标签调用手机系统的一些小技巧(打电话、发短信)
  5. windows下nodejs开发环境的安装与配置
  6. vue获取input焦点事件_vue获取input焦点,弹框后自动获取input焦点
  7. ssh整合之四单独搭建struts的运行环境
  8. Py6S模块安装过程(Win10环境,64位)
  9. 通信网理论与应用第1章 通信网概述
  10. 计算机基础ppt_「考前秘笈」2020年3月份计算机二级MS-office考试重点
  11. 深度干货!一文读懂人脸识别技术(建议收藏)
  12. Android上的抓包工具 Packet Capture
  13. 解决微信开发者工具无法打开的问题
  14. 搭建机器人电控系统——什么是单片机MCU?如何选择单片机?
  15. system/build.prop参数说明
  16. h5 微信支付 php,用h5做出微信的支付过程的实现步骤
  17. Diskman 重建分区表 (小莫)
  18. word文件自动变成只读模式,怎么办?
  19. probuf 流无协议文件反序列化
  20. 程序员必备免费电子书下载网站

热门文章

  1. 什么是对象?什么是面向对象程序设计?面向对象语言有什么优点?
  2. 直播系统压测应该怎么做?
  3. win7上安装DockerToolbox
  4. 我的世界java版特性_我的世界Java版特性展望直面会爆料
  5. 打开网页提示java_win7系统打开网页提示“应用程序已被JAVA安全阻止”的解决方法...
  6. vue仿抖音视频列表(兼容微信内置X5浏览器)
  7. SEO面试知识点与工作内容技巧
  8. 我的世界java8闪退_Win7系统打开我的世界游戏出现闪退的解决方法
  9. TCP 报文格式及TCP Flags
  10. grub命令磁盘管理