您的位置:首页 > 其它

Strongswan+freeradius+daloradius+ad认证实现ikev2接入服务一

2018-08-07 12:09 1011 查看
Strongswan+freeradius+daloradius+ad认证实现ikev2接入服务

第一部分 Centos7 strongswan安装配置支持 Windows7 ikev2 eap-machapv2模式、计算机证书模式
实验时间:2018年8月6日-2018年8月6日拓扑图:



环境: 防火墙1:FW1 USG2200 IP地址外网:10.99.101.170 域名:strongswan.test.com
IP地址内网:192.168.20.3
防火墙2:FW2 USG2200 IP地址外网:10.99.101.129 域名:mystrongswan.test.com
IP地址内网:192.168.20.2 防火墙5:FW5 USG2200 IP地址外网:10.99.101.167
IP地址内网:131.107.0.1
[b] 服务器:[/b][b] 域控服务器:
[/b][b] Windows Server2016
[/b][b] IP地址:192.168.20.10 域名:dc.test.com
[/b][b] strongswan服务器:[/b][b] [b][b]Centos7[/b][/b][/b][b] IP地址:192.168.20.29[/b][b] Strongswan-5.6.3[/b][b] freeradius服务器:
[/b][b] [b][b]Centos7[/b][/b][/b][b] IP地址:192.168.20.27
[/b][b] freeradius-4.0.0
[/b][b] 客户端:Windows7[/b][b] 自带客户端 epa-mschapv2模式 、 计算机证书模式[/b]第一部分 Centos7 strongswan安装配置支持 Windows7 ikev2 eap-machapv2模式、计算机证书模式

实验时间:2018年8月6日-2018年8月6日

1、 CentOS 7 最小安装,随意,其他也可以。 设置IP地址
cd /etc/sysconfig/networks-scripts

vi ifcfg-ens32

BOOTPROTO=static ONBOOT=yes IPADDR=192.168.20.29 NETMASK=255.255.255.0 GATEWAY=192.168.20.2 DNS1=192.168.20.10
reboot

2、 安装vim,可选步骤,不安装也可以。
yum install -y vim

3、 安装完后升级系统,可选步骤,不升级也可以。
yum -y upgrade

升级所有包,不改变软件设置和系统设置,系统版本升级,内核不改变
yum -y update

升级所有包,改变软件设置和系统设置,系统版本内核都升级4、 关闭selinux
vim /etc/sysconfig/selinux

SELINUX=disabled
reboot

sestatus

SELinux status: disabled5、 安装strongswan
yum -y install epel-release

yum -y install strongswan


strongswan的配置文件在/etc/strongswan/ 查看版本
strongswan version

Linux strongSwan U5.6.3/K3.10.0-862.9.1.el7.x86_64 Institute for Internet Technologies and Applications University of Applied Sciences Rapperswil, Switzerland See 'strongswan --copyright' for copyright information.6、 制作证书 (1)strongswan官方对Windows 7 客户端对证书的要求的说明: 链接:https://wiki.strongswan.org/projects/strongswan/wiki/Win7CertReq 关于strongswan pki 的官方说明看下面的链接: https://wiki.strongswan.org/projects/strongswan/wiki/IpsecPKI (2)建一个目录保存要生成的证书,在哪建都行:
mkdir /etc/strongswan/ca

cd /etc/strongswan/ca

(3)生成一个私钥用作CA根证书的私钥,文件名为YIMIDECA.key.pem,文件名可以自己随便改。
strongswan pki --gen -- outform pem > YIMIDECA.key.pem

(4)自签名形式生成CA根证书
strongswan pki --self --in YIMIDECA.key.pem --dn "C=CN, O=YIMIDEZUZHI, CN=YIMIDE CA" --ca --lifetime 3650 --outform pem > YIMIDECA.cert.pem

C=CN 国家代码,填CN 跟其他证书的C要一致 O=YIMIDEZUZHI 组织代码,自己随便填的,1米的组织 跟其他证书的O要一致 CN=YIMIDE CA 自己随便填。 (5)生成一个私钥用作strongswan服务器的私钥,文件名为YIMIDESERVER.key.pem
strongswan pki --gen -- outform pem > YIMIDESERVER.key.pem

从这个私钥文件YIMIDESERVER.key.pem中提取公钥,文件名为YIMIDESERVER.pub.pem
strongswan pki --pub --in YIMIDESERVER.key.pem --outform pem > YIMIDESERVER.pub.pem

用提取的公钥文件YIMIDESERVER.pub.pem和刚才生成的CA证书YIMIDECA.cert.pem签发一个服务器证书,文件名为YIMIDESERVER.cert.pem
strongswan pki --issue --lifetime 1200 --cacert YIMIDECA.cert.pem --cakey YIMIDECA.key.pem --in YIMIDESERVER.pub.pem --dn "C=CN, O=YIMIDEZUZHI, CN= strongswan.test.com" --san "dns:192.168.20.29"  --san "dns:10.99.101.170" --san "dns:10.99.101.129" --san "strongswan.test.com" --san "mystrongswan.test.com" --flag serverAuth --flag ikeIntermediate --outform pem > YIMIDESERVER.cert.pem

C=CN 国家代码,我没试乱填会怎样,老实填CN 跟其他证书的C要一致 O=YIMIDEZUZHI 组织代码,自己随便填的,一米的组织 跟其他证书的O要一致 CN=strongswan.test.com 这个填strongswan服务器的域名[b]--san "dns:192.168.20.29" --san "dns:10.99.101.170" --san "dns:10.99.101.129" --san "strongswan.test.com" --san "mystrongswan.test.com"[/b]这个填strongswan服务器的ip和域名。--san --flag 的设置还是看这个 strongswan官方对Windows 7 客户端对证书的要求的说明: 链接:https://wiki.strongswan.org/projects/strongswan/wiki/Win7CertReq(6)生成一个私钥用作客户端的私钥,文件名为YIMIDECLIENT.key.pem
strongswan pki --gen --outform pem > YIMIDECLIENT.key.pem

从这个私钥文件YIMIDECLIENT.key.pem中提取公钥,文件名为YIMIDECLIENT.pub.pem
strongswan pki --pub --in YIMIDECLIENT.key.pem --outform pem > YIMIDECLIENT.pub.pem

用提取的公钥文件YIMIDECLIENT.pub.pem和刚才生成的CA证书YIMIDECA.cert.pem签发一个服务器证书,文件名为YIMIDECLIENT.cert.pem
strongswan pki --issue --lifetime 1200 --cacert YIMIDECA.cert.pem --cakey YIMIDECA.key.pem --in YIMIDECLIENT.pub.pem --dn "C=CN, O=YIMIDEZUZHI, CN=YIMIDECLIENT" --outform pem > YIMIDECLIENT.cert.pem

C=CN 国家代码,填CN 跟其他证书的C要一致 O=YIMIDEZUZHI 组织代码,自己随便填的,一米的组织 跟其他证书的O要一致 CN=YIMIDECLIENT 这个自己起名。 生成一个pkcs12格式的证书,把证书导入到客户端时使用。
openssl pkcs12 -export -inkey YIMIDECLIENT.key.pem -in YIMIDECLIENT.cert.pem -name "YIMIDECLIENT" -certfile YIMIDECA.cert.pem -caname "YIMIDE CA" -out YIMIDECLIENT.cert.p12

这条命令会要求输入两次证书密码,用于导入计算机时填入。 证书制作完毕!!!!!!!!!! 现在这个文件夹有9个文件: YIMIDECA.key.pem YIMIDECA.cert.pem YIMIDESERVER.key.pem YIMIDESERVER.pub.pem YIMIDESERVER.cert.pem YIMIDECLIENT.key.pem YIMIDECLIENT.pub.pem YIMIDECLIENT.cert.pem YIMIDECLIENT.cert.p12 为strongswan服务器安装证书,就是将证书复制到规定的目录
cp -r YIMIDECA.cert.pem /etc/strongswan/ipsec.d/cacerts/
cp -r YIMIDESERVER.cert.pem /etc/strongswan/ipsec.d/certs/
cp -r YIMIDECLIENT.cert.pem /etc/strongswan/ipsec.d/certs/
cp -r YIMIDECA.key.pem /etc/strongswan/ipsec.d/private/
cp -r YIMIDESERVER.key.pem /etc/strongswan/ipsec.d/private/
cp -r YIMIDECLIENT.key.pem /etc/strongswan/ipsec.d/private/

7、 编辑strongswan配置文件,共三个/etc/strongswan/ipsec.conf、/etc/strongswan/strongswan.conf、/etc/strongswan/ipsec.secrets
vim /etc/strongswan/ipsec.conf

config setupuniqueids=never #关闭ID唯一性,即允许多个客户端使用同一个证书,多设备同时在线conn %default #默认配置项,其他conn配置项都会调用此默认项left=%any #left表示local,即本地端(服务器端)IP地址;%any是魔数字,表示任意地址leftsubnet=0.0.0.0/0 #本地端网络,0.0.0.0/0为通配,表示所有IP网段right=%any #right表示remote,即远程端(客户端)IP地址可为任意地址rightsourceip=192.168.20.0/24 #分配给远程端的虚拟IP地址段,尽量避免使用常用私网地址段以免冲突dpdaction=clear #dpd表示Dead Peer Detection,对端失效检测,clear表示对端失效时关闭连接ike=aes128-sha1-modp1024,aes128-sha1-modp1536,aes128-sha1-modp2048,aes128-sha256-ecp256,aes128-sha256-modp1024,aes128-sha256-modp1536,aes128-sha256-modp2048,aes256-aes128-sha256-sha1-modp2048-modp4096-modp1024,aes256-sha1-modp1024,aes256-sha256-modp1024,aes256-sha256-modp1536,aes256-sha256-modp2048,aes256-sha256-modp4096,aes256-sha384-ecp384,aes256-sha384-modp1024,aes256-sha384-modp1536,aes256-sha384-modp2048,aes256-sha384-modp4096,aes256gcm16-aes256gcm12-aes128gcm16-aes128gcm12-sha256-sha1-modp2048-modp4096-modp1024,3des-sha1-modp1024! esp=aes128-aes256-sha1-sha256-modp2048-modp4096-modp1024,aes128-sha1,aes128-sha1-modp1024,aes128-sha1-modp1536,aes128-sha1-modp2048,aes128-sha256,aes128-sha256-ecp256,aes128-sha256-modp1024,aes128-sha256-modp1536,aes128-sha256-modp2048,aes128gcm12-aes128gcm16-aes256gcm12-aes256gcm16-modp2048-modp4096-modp1024,aes128gcm16,aes128gcm16-ecp256,aes256-sha1,aes256-sha256,aes256-sha256-modp1024,aes256-sha256-modp1536,aes256-sha256-modp2048,aes256-sha256-modp4096,aes256-sha384,aes256-sha384-ecp384,aes256-sha384-modp1024,aes256-sha384-modp1536,aes256-sha384-modp2048,aes256-sha384-modp4096,aes256gcm16,aes256gcm16-ecp384,3des-sha1!conn IKEv1-CERT-XAUTH #供老版本IOS使用。IKEv1,使用证书和XAUTH验证keyexchange=ikev1 #密钥交换使用IKEv1fragmentation=yes #允许分片leftauth=pubkey #本地端使用公钥验证leftcert= YIMIDESERVER.cert.pem #指定本地端证书rightauth=pubkey #远程端使用公钥验证rightauth2=xauth #远程端使用用户账号验证rightcert=YIMIDECLIENT.cert.pem #指定远程端证书auto=add #auto定义strongSwan服务启动时该连接的行为,add是添加连接类型但不启动conn IKEv1-PSK-XAUTH #供IOS, Android使用。IKEv1,使用预共享密钥和XAUTH验证keyexchange=ikev1 #密钥交换使用IKEv1leftauth=psk #本地端使用预共享密钥验证rightauth=psk #远程端使用预共享密钥验证rightauth2=xauth #远程端使用用户账号验证auto=add #strongSwan启动时添加连接类型但不启动conn IKEv2-CERT #供Windows 7+, Linux使用。IKEv2,使用证书验证keyexchange=ikev2 #密钥交换使用IKEv2leftauth=pubkey #本地端使用公钥验证leftcert= YIMIDESERVER.cert.pem #指定本地端证书[b]leftfirewall=yes #添加防火墙规则[/b]rightauth=pubkey #远程端使用公钥验证rightcert= YIMIDECLIENT.cert.pem #指定远程端证书auto=add #strongSwan启动时添加连接类型但不启动conn IKEv2-EAP #供Windows 7+, IOS9+使用。IKEv2,EAP验证keyexchange=ikev2 #密钥交换使用IKEv2ike=aes256-sha256-modp1024,3des-sha1-modp1024,aes256-sha1-modp1024! #第一阶段加密方式esp=aes256-sha256,3des-sha1,aes256-sha1! #ESP的顺序与IKE一致rekey=no #本地端对Windows远程端发出rekey请求会断开连接,所以需配置为noleftfirewall=yes #添加防火墙规则leftauth=pubkey #本地端使用公钥验证leftcert=YIMIDESERVER.cert.pem #指定本地端证书leftsendcert=always #本地端总是发送证书leftid=@strongswan.test.com #本地端标识,使用本地端公网IP地址作为标识,和生成服务器证书时的--san参数对应rightauth=eap-mschapv2 #远程端使用eap-mschapv2验证rightsendcert=never #不要求远程端发送证书rightsourceip=%dhcp #使用dhcp获取ipeap_identity=%any #指定EAP验证身份,任意账户fragmentation=yes #允许分片auto=add #strongSwan启动时添加连接类型但不启动
vim /etc/strongswan/strongswan.conf

charon{filelog {/var/log/strongswan.charon.log {time_format = %b %e %Tdefault = 2append = noflush_line = yes}}load_modular = yesduplicheck.enble = nocompress = yesplugins {include strongswan.d/charon/*.conf}dns1 = 192.168.20.10nbns1 = 192.168.20.10nbns2 = 192.168.20.100}include strongswan.d/.conf
vim /etc/strongswan/ipsec.secrets

: RSA YIMIDESERVER.key.pem: PSK "psk123456": XAUTH "xauth123456"eapuser : EAP "eap123456"8、 firewalld防火墙配置 打开防火墙端口
firewall-cmd --permanent --add-port=500/udp
firewall-cmd --permanent --add-port=4500/udp
firewall-cmd --reload

允许esp ah 协议
firewall-cmd --permanent --add-rich-rule='rule protocol value="esp" accept'
firewall-cmd --permanent --add-rich-rule='rule protocol value="ah" accept'
firewall-cmd --reload

开启内核转发 编辑 /etc/systcl.conf
vim /etc/sysctl.conf

net.ipv4.ip_forward=1 net.ipv6.conf.all.forwarding=1 net.ipv4.conf.all.accept_redirects = 0 net.ipv4.conf.all.send_redirects=09、 启动服务
systemctl enable strongswan
systemctl start strongswan
systemctl status strongswan

查看加载的CA证书
strongswan listcacerts

显示: List of X.509 CA Certificates subject: "C=CN, O=YIMIDEZUZHI, CN=YIMIDE CA" issuer: "C=CN, O=YIMIDEZUZHI, CN=YIMIDE CA" validity: not before Jul 24 16:05:12 2018, ok not after Jul 21 16:05:12 2028, ok (expires in 3649 days) serial: 07:f8:c4:ad:18:64:7d:4c flags: CA CRLSign self-signed subjkeyId: ff:e1:cb:fc:c0:91:37:c7:cd:6e:66:f6:40:f0:77:a1:5d:d2:fa:a4 pubkey: RSA 2048 bits keyid: 78:93:01:ae:43:76:f1:b3:ed:6a:58:1e:73:23:ae:b1:09:ce:52:b5 subjkey: ff:e1:cb:fc:c0:91:37:c7:cd:6e:66:f6:40:f0:77:a1:5d:d2:fa:a410、 设置USG2200端口映射 添加转发策略: untrust > truse any 192.168.20.29/32 udp permit

添加目的NAT
udp 500 4500


添加源NAT untrust > trust any 192.168.20.29/32 NAT转换 内网接口地址


11、[b]为Windows 7安装客户端证书[/b] 想办法把客户端证书文件YIMIDECLIENT.cert.p12复制到Windows 7 客户端计算机 运行mmc 文件-->添加/删除管理单元-->证书-->计算机账户










证书安装完毕!!!!!!!!!!!!!!!!!!!11、 第一种链接--建立使用证书验证的连接: 目的地址使用建立YIMIDESERVER.cert.pem 时使用的 --san 参数 strongswan.test.com mystrongswan.test.com 10.99.101.129 10.99.101.170 各建立一个,进行测试







连接成功后状态:


12、 第二种链接--建立使用证书+密码验证的连接EAP-MSCHAP v2 :

用户密码使用ipsec.secret 中的 eapuser 密码 eap123456

连接成功后状态:


Strongswan+freeradius+daloradius+ad认证实现ikev2接入服务
第一部分 Centos7 strongswan安装配置支持 Windows7 ikev2 eap-machapv2模式、计算机证书模式配置结束[b][/b][b][b]第一部分 Centos7 strongswan安装配置支持 Windows7 ikev2 eap-machapv2模式、计算机证书模式[/b][/b][b] [b][b]第二部分 安装配置freeradius-4.0.0 samba 使用winbind 集成Windiows Active Directory 域账户认证并实现用户组认证[/b][/b][/b]第三部分 集成Strongswan+freeradius实现使用域用户组认证ikev2接入第四部分 安装mysql、daloradius实现freeradius的web管理
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  freeradius daloradius ad
相关文章推荐