华为H3C交换机+Radius+mysql Radius认证认证方案,嵌入式客户端代码,配置(下:交换机和Radius服务器配置) |
您所在的位置:网站首页 › 华为h3c认证 › 华为H3C交换机+Radius+mysql Radius认证认证方案,嵌入式客户端代码,配置(下:交换机和Radius服务器配置) |
(一交互机配置) 1 802.1x本地认证方案配置当Radius服务器不可用的时候,需要在交换机本地有一个备用认证方案,用户名和密码设置在交换机上替换Radius Server完成对交换机端口的认证和授权。可以在Radius Serer认证失败后转本地认证,避免Radius服务器宕机后网络无法接入。
# 开启全局802.1x特性。 system-view System View: return to User View with Ctrl+Z. [H3C] dot1x # 开启指定端口GigabitEthernet 1/0/1的802.1x特性。 [H3C] dot1x interface GigabitEthernet 1/0/1 # 设置接入控制方式(该命令可以不配置,因为端口的接入控制在缺省情况下就是基于MAC地址的)。 [H3C] dot1x port-method macbased interface GigabitEthernet 1/0/1 #增加默认用户 [H3C]local-user test [H3C] password simple test #认证方式,本地认证 [H3C]service-type lan-access [H3C] state active #NCU 连接进程 /radiusclient eth0 test test (使用本地认证域) 交换机接入网络,监控接在交换机端口上,此时监控可访问网络 #dis cu查看最终配置 domain system access-limit disable state active idle-cut disable self-service-url disable # user-group system group-attribute allow-guest # local-user test password cipher $c$3$fYHR8x8vhmtmh1T2fe3pnt3vHlT432w= service-type lan-access # interface NULL0 # interface GigabitEthernet1/0/1 dot1x 2 Radius认证方案配置注:交换机默认不验证版本号,这个功能不能打开(默认关闭) #先设定交换机IP Vlan 1 打开端口 默认分配到Vlan1 #交换机端口默认VLAN是VLAN1,工作在access模式。 int vlan 1 ip add 10.169.86.2 255.255.255.0 #交换机必须要有 IP地址,否则 未配置,0.0.0.0 交换机无法发出 Radius报文给 Freeradius 提示 src-ip-address not found # 开启全局802.1x特性。 system-view System View: return to User View with Ctrl+Z. [H3C] dot1x # 开启指定端口GigabitEthernet 1/0/1的802.1x特性。 [H3C] dot1x interface GigabitEthernet 1/0/1 # 设置接入控制方式(该命令可以不配置,因为端口的接入控制在缺省情况下就是基于MAC地址的)。 [H3C] dot1x port-method macbased interface GigabitEthernet 1/0/1 # Chap:质询握手验证协议, { #[H3C]dot1x authentication-method eap //chap #采用EAP认证方式,则RADIUS方案下的user-name-format配置无效,#user-name-format的介绍请参见“安全命令参考”中的“AAA” }
# 创建RADIUS方案radius1并进入其视图。 [H3C] radius scheme radius1 # 设置主认证/计费RADIUS服务器的IP地址。 [H3C-radius-radius1] primary authentication 10.169.86.19 #[H3C-radius-radius1] primary accounting 10.169.86.19# 设置#备份认证/计费RADIUS服务器的IP地址。 这里不计费,不设置
#设置备用服务器,无备用服务器无需设置 #[H3C-radius-radius1] secondary authentication 10.11.1.2 #[H3C-radius-radius1] secondary accounting 10.11.1.1 #设置设备发送Radius报文使用的源IP地址 #指定定NSP IP
#[H3C-radius-radius1] nas-ip 10.169.86.2
# 设置系统与认证RADIUS服务器交互报文时的加密密码。 [H3C -radius-radius1] key authentication testing123 # 设置系统与计费RADIUS服务器交互报文时的加密密码。 #[H3C-radius-radius1] key accounting testing123 # 设置系统向RADIUS服务器重发报文的时间间隔与次数。【 可选】 [H3C-radius-radius1] timer 5 [H3C-radius-radius1] retry 5 # 设置系统向RADIUS服务器发送实时计费报文的时间间隔。 #[H3C-radius-radius1] timer realtime-accounting 15 # 指示系统从用户名中去除用户域名后再将之传给RADIUS服务器。 [H3C-radius-radius1] user-name-format without-domain #服务器类型 standard 标准的 ,extended 华为私有的扩展 #[H3C-radius-radius1] server-type standard //extended [H3C-radius-radius1] quit # 创建域aabbcc.net并进入其视图。 [H3C] domain aabbcc.net # 指定radius1为该域用户的RADIUS方案,若RADIUS服务器无效,则使用本地认证方案。 # 配置802.1X用户使用RADIUS方案radius1进行认证、授权方法。 [H3C-isp-aabbcc.net] authentication lan-access radius-scheme radius1 [H3C-isp-aabbcc.net] authorization lan-access radius-scheme radius1
[H3C-isp-aabbcc.net] scheme radius-scheme radius1 local # 设置该域最多可容纳30个用户。【可选】 [H3C-isp-aabbcc.net] access-limit enable 30 # 启动闲置切断功能并设置相关参数。【可选】 #[H3C-isp-aabbcc.net] idle-cut enable 20 2000 #[H3C-isp-aabbcc.net] quit # 配置域aabbcc.net为缺省用户域。 [H3C] domain default enable aabbcc.net # 添加本地接入用户。 [H3C] local-user localuser [H3C-luser-localuser] service-type lan-access [H3C-luser-localuser] password simple localpass /radiusclient eth0 test@system test (system为本地用户默认的域) #dis cu查看最终配置 # radius scheme radius1 primary authentication 10.169.86.27 key authentication cipher $c$3$cNeQqnvnkIr+qo2QHEXDPivo5LsUe1xjsx0ct5U= user-name-format without-domain (QT不支持输入带其他字符用户名,所以目前只允许设置成user-name-format without-domain) nas-ip 10.169.86.100 # domain aabbcc.net authentication lan-access radius-scheme radius1 authorization lan-access radius-scheme radius1 access-limit disable state active idle-cut disable self-service-url disable domain system access-limit disable state active idle-cut disable self-service-url disable # 对于非H3C客户端,由于不支持握手功能,在握手周期内交换机不会收到握手回应报文。因此需要将在线用户握手功能关闭,以防止错误地认为用户下线。(我们的客户端做了握手回应包) 3.附录 3.1 H3C Console口设置 3.2 H3C交换机恢复默认配置
[H3C]reset saved-configuration The saved configuration file will be erased. Are you sure? [Y/N]:Y 3.3 H3C交换机保存配置[H3C]Save The current configuration will be written to the device. Are you sure? [Y/N]:Y
(二服务器配置) FreeRadius +mysql .FreeRadius配置 2.1防火墙设置 Linux防火墙信任radius服务: iptables -A INPUT -p udp --dport 1812 -j ACCEPTiptables -A INPUT -p udp --dport 1813 -j ACCEPT 虚拟机Windows主机防火墙: 2.2配置Radius
2.2.1 User配置文件管理用户 Radius基本配置radiusd.conf :Radius配置选择支持的认证方式【默认】 //server配置 监听端口信息配置; 选择监听内容 { Type= auth //认证监听 选择日志记载内容 log_auth = yes log_auth_badpass = yes log_auth_goodpass = yes } Freeradius配置文件radiusd.conf详解 :https://blog.csdn.net/libinbin_1014/article/details/49508929 Radius监听配置client.conf : #配置steve用户 Client 10.169.86.0/24 { Secret = testing123 //交换机和Radius服务器交互加密码 Shortname = steve } #配置本机用户 Client localhost { Secret = testing123 //交换机和Radius服务器交互加密码 …………………… }
按IP subnet将NAS分组 192.168.0.0/24就代表了192.168.0.0至192.168.0.255 一直分下去有 192.168.1.0至192.168.1.255 192.168.2.0至192.168.2.255等等 再说说这24是怎么得到255.255.255.0 每个IP地址的长度为32位(bit),分4段,每段8位(1个字节)。简单的说24代表从前往后有24个1,就是11111111.11111111.11111111.00000000 配置详解:https://zhidao.baidu.com/question/2139279656375616028.html Radius用户配置Users: 本地默认用户配置方法:/usr/local/etc/raddb/users 打开配置文件目录:/usr/local/etc/raddb ,编辑其中的users文件 这个文件就是定义radiusd用户的文件、其实正式使用验证服务器的话应该是使用数据库如mysql来管理这些用户数据的、不过现在开发测试阶段就先把用户信息使用这个users的文本方式来简单记录一下, 找到如下代码段,取消注释并保存退出: { steve Cleartext-Password := "testing" Service-Type = Framed-User, # Framed-Protocol = PPP, 指定为ppp协议 # Framed-IP-Address = 10.169.86.217, (如果终端获取到了IP,用于计费) Framed-IP-Netmask = 255.255.255.0, Framed-Routing = Broadcast-Listen, # Framed-Filter-Id = "std.ppp", Framed-MTU = 1500, Framed-Compression = Van-Jacobsen-TCP-IP } 这时,多了个steve 用户, 先用docker——enter 分裂出一个窗口,再执行 radtest steve testing localhost 1812 testing123 出现以下字样表示安装成功 Access-Accept 收到接受字样 2.2.2 mysql数据库管理用户 2.2.2.1启用MySQL模块支持 radiusd.conf配置# 查找"sql.conf”(683行),去掉#号 vim /usr/local/etc/raddb/radiusd.conf sql.conf配置配置数据库的名称 登录的用户名和密码 配置 dialup.conf路径 配置 数据库的动态库 rlm_sql_mysql.so路径 { database = "mysql" //数据库名称
# # Which FreeRADIUS driver to use. # driver = "rlm_sql_${database}" //数据库client Driver路径 用来插入,查询等操作
# Connection info: server = "localhost" //数据库ip 本机 #port = 3306 login = "root" //登录用户名和密码 password = "123456"
} 启动sqlService mysqld start 启动成功会显示绿色/失败红色
2.2.2.2.增加数据库 创建 radius 数据库及表# 123456是你mysql的root密码 mysqladmin -uroot -p123456 create radius; 修改策略表radius帐号的密码cd /usr/local/etc/raddb/sql/mysql sed -i 's/radpass/123456/g' admin.sql sed -i 's/radpass/123456/g' /usr/local/etc/raddb/sql.confmysql -uroot -p123456 < admin.sql mysql -uroot -p123456 radius < ippool.sql mysql -uroot -p123456 radius < schema.sql mysql -uroot -p123456 radius < wimax.sql mysql -uroot -p123456 radius < cui.sql mysql -uroot -p123456 radius < nas.sql 使用nas代替clients.confclient配置默认从 "/usr/local/etc/raddb/clients.conf" 文件读取(#include clients.conf),开启后可从数据库nas表读取client配置信息。 sed -i 's/\#readclients/readclients/g' /usr/local/etc/raddb/sql.confnas表插入值、nasname为localhost、shortname为localhost、type为other、secret为迩设置迩的客户端密钥。 打开默认功能模块对sql的支持vim /usr/local/etc/raddb/sites-enabled/default 找到authorize {}模块,注释掉files(159行),去掉sql前的#号(166行) 找到accounting {}模块,注释掉radutmp(385行),注释掉去掉sql前面的#号(395行)。 找到session {}模块,注释掉radutmp(439行),去掉sql前面的#号(443行)。 找到post-auth {}模块,去掉sql前的#号(464行),去掉sql前的#号(552行)。 vim /usr/local/etc/raddb/sites-enabled/inner-tunnel 找到authorize {}模块,注释掉files(124行),去掉sql前的#号(131行)。 找到session {}模块,注释掉radutmp(251行),去掉sql前面的#号(255行)。 找到post-auth {}模块,去掉sql前的#号(277行),去掉sql前的#号(301行)
2.2.2.3添加表和用户信息 连接 MySQL 数据库mysql -uroot -p123456; # 使用 radius 数据库USE radius;添加用户组和用户组的属性#限制同时登陆人数,注意是在radgroupcheck表【可选】INSERT INTO radgroupcheck (groupname,attribute,op,VALUE) VALUES ('normal','Simultaneous-Use',':=','1'); # 增加认证 类型【可选】INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('TIV','Auth-Type',':=','Local'); # 增加服务类型INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('TIV','Service-Type',':=','Framed-User'); # 报文长度限制 【可选】 INSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('TIV','Framed-MTU',':=','1500'); # TCP IPINSERT INTO radgroupreply (groupname,attribute,op,VALUE) VALUES ('TIV','Framed-Compression',':=','Van-Jacobson-TCP-IP'); 在组下新增一个认证用户 #添加用户demo,密码demo,注意是在radchec表INSERT INTO radcheck (username,attribute,op,VALUE) VALUES ('demo','Cleartext-Password',':=','demo'); #将用户demo加入VERTIV用户组INSERT INTO radusergroup (username,groupname) VALUES ('demo','TIV'); 参考配置:https://www.cnblogs.com/chulia20002001/p/6971916.html https://blog.csdn.net/cluniquecui/article/details/42490423 1. 测试新增的用户名和密码是否有效radtest demo demo localhost 1812 testing123 2.3 启动Radius Linux终端下执行命令: radiusd –X (启动服务)
radius日志目录:/usr/local/var/log/radius 3.附录 3.1 mysql恢复root用户密码方法1.将所有连接到数据库的进程和网络断掉 2.修改MySQL的登录设置: # vi /etc/my.cnf 在[mysqld]的段中加上一句:skip-grant-tables 例如: [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock skip-grant-tables 保存并且退出vi。 3.重新启动mysqld # /etc/init.d/mysqld restart Stopping MySQL: [ OK ] Starting MySQL: [ OK ] 4.登录并修改MySQL的root密码 # /usr/bin/mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 to server version: 3.23.56 Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> USE mysql ; Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed mysql> UPDATE user SET Password = password ( 'new-password' ) WHERE User = 'root' ; Query OK, 0 rows affected (0.00 sec) Rows matched: 2 Changed: 0 Warnings: 0 mysql> flush privileges ; Query OK, 0 rows affected (0.01 sec) mysql> quit Bye 5.将MySQL的登录设置修改回来 # vi /etc/my.cnf 将刚才在[mysqld]的段中加上的skip-grant-tables删除 保存并且退出vi。 6.重新启动mysqld # /etc/init.d/mysqld restart Stopping MySQL: [ OK ] Starting MySQL: [ OK ] 3.2 mysql基本操作语法数据库,表管理 进入mysql mysql -h hostname -uroot -p创建数据库 mysql> create database location导入数据结构 mysql -uroot -p location show databases;进入某个库 mysql> use location;查看表信息 mysql> show tables;查看表结构 mysql> desc Contact;改表名 mysql> rename table Contact to Contact_new删除库 mysql> drop database location删除表 mysql> drop table Contact 授权部分 建立用户并授权 mysql> grant all on location.* to gk1020@'10.1.11.71' identified by 'gk1020'取消授权 mysql> revoke all on location.* from gk1020@'10.1.11.71'刷新权限 mysql> flush privileges 操作语句 查询 mysql> select * from Contactmysql> select count(*) from Contact修改 mysql> update Contact set RegTime=‘2008-01-01 00:00:00’ where id=1mysql> update Contact set RegTime=‘2008-01-01 00:00:00’,CID=1 where id=1插入 mysql> insert into Contact values('',''…)mysql> insert into Contact(ID,CID,Contact) values('',''…)删除 mysql> delete from Contact |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |