配置radsec.note

noteId: WEB3fe26a731d5b43b9629d0b105c3c0478 · 原始路径:/ALL/Linux - A模块/服务配置/Freeradius/配置radsec.note · 图片:17 · 附件待处理:0

 
作用:
RadSec(RADIUS over TLS)
是一种让 RADIUS 协议通过 TLS(或 TCP + TLS)加密通道 进行传输的标准机制,
 
# 在思科中只能够与 CSR1000v建立
 
一、配置 radsec(Linux作为CA):
 
1、先在Linux上创建CA根证书颁发机构,并创建一张证书:
操作很简单,但是需要注意创建的证书字段中需要有radius服务器的地址,如果cisco中指定的是IP,那么就需要在 subjectAltName中定义:IP=[服务器地址]
 
 
2、在Linux上配置NTP服务器,然后CSR1000v与它进行时间同步
操作很简单,不赘述
 
3、在 CSR1000v上导入CA根证书:
先将ca根证书拷贝出来,复制内容:
 
# 导入证书:
crypto pki trustpoint trust_ca
 enrollment terminal
 revocation-check none
 fqdn none
 exit
 
crypto pki authenticate trust_ca
# 粘贴证书内容,然后回车即可
 
可以看到,已经导入成功:
 
 
4、路由器配置radius和AAA:
radius server RADIUS
 address ipv4 192.168.1.1 auth-port 1812 acct-port 1813
 key Skills39
 tls trustpoint client trust_ca    //指定信任根证书
 
aaa new-model
aaa authentication login AAA group radius local
 
lin con 0
 login authentication AAA
radsec默认端口是2083(这条配置是默认生成的)
 
 
5、配置 radius:
不需要在 clients.conf中允许客户端网段,在tls中配置客户端网段即可
 
(1)启用tls模块:
vim /etc/freeradius/3.0/sites-available/tls
# private_key_password这里要输入私钥密码
 
这条默认值是 yes,如果开启了,就需要cisco上也导入一张证书,比较麻烦,这里直接设置为 no,就可以不用导入证书了
 
这里也要设置预共享密钥,需要与上面 Cisco设置的值一致
 
# 启用tls模块:
cd /etc/freeradius/3.0
cp sites-available/tls sites-enabled
chown freerad:freerad sites-available/tls
systemctl restart freeradius
 
(2)给予radius读取证书的权限:
chown freerad /etc/ssl/ssl.*
 
(3)创建radius用户:
vim /etc/freeradius/3.0/users
 
·测试:
 
 
 
二、(无法完成)配置 radsec(Cisco作为CA):
 
1、在Cisco上创建CA,并颁发证书:
# 创建CA、证书私钥:
crypto key generate rsa modulus 2048 label CA    //创建CA根证书私钥
crypto key generate rsa modulus 2048 exportable label SSL    //创建证书私钥(必须允许私钥导出)
 
# 创建证书颁发机构:
clock calendar-valid    //CSR1000v需要配置这一条否则无法启动证书颁发机构
ip http server
crypto pki server CA
 issuer-name cn=CA
 hash sha256
 grant auto
 no shutdown
  
# 本地申请证书:
crypto pki trustpoint SSL
 rsakeypair SSL
 revocation-check none
 fqdn none
 enrollment url http://2.2.2.2    //输入本机接口地址
 subject-alt-name IP=192.168.1.1    //必须指定radius服务器地址(配置虽然会报错,但是查看配置时,配置文件中确实会有该字段)
 subject-name cn=192.168.1.1
 exit
 
crypto pki authenticate SSL
# yes
 
crypto pki enroll SSL
# no
# yes
# 192.168.1.1
# yes
 
 
 
2、导出CA根证书、ssl证书和ssl证书私钥:
# 导出CA根证书:
crypto pki export CA pem terminal
 
# 导出SSL证书+私钥为 pkcs12文件(这种方式导出,复制时会丢失一些内容,导致linux无法识别):
crypto pki export SSL pkcs12 terminal password Skills39
将内容复制为 .crt文件
 
# 直接通过scp导出给linux:
crypto pki export SSL pkcs12 scp://root@192.168.1.1/ssl.p12 password Skills39
 
 
3、在linux中通过 .p12文件提取证书与私钥:
先将根证书与 .p12文件拷入linux
# 提取证书:
openssl pkcs12 -in ssl.p12 -clcerts -nokeys -out ssl.pem 
 
# 提取私钥:
openssl pkcs12 -in ssl.p12 -nocerts -out ssl.key -nodes
 
或者直接将证书和私钥提取到同一个文件中,然后手动切分:
openssl pkcs12 -in ssl.p12 -clcerts -out ssl.pem 
 
 
 
由Cisco生成的证书并不带有 SAN(subjectAltName),而Cisco客户端需要验证radius服务器的subjectAltName属性中的IP字段,而由Cisco生成的证书无法通过该验证