配置radsec.note
作用:
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 AAAradsec默认端口是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/tlssystemctl 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生成的证书无法通过该验证