Centos 7 搭建 IKEv2 VPN 服务

1.安装依赖组件

1 yum -y install gpm-devel pam-devel openssl-devel make gcc

2.安装EPEL

1 yum -y install epel-release

3.安装Strongswan

1 yum -y install strongswan

4.为Strongswan添加别名 ipsec

1 alias ipsec=‘strongswan‘

5.生成CA私钥,并使用此私钥自签名生成CA证书

1 cd /etc/strongswan && mkdir ca && cd ca
2 ipsec pki --gen --outform pem > ca.pem
3 ipsec pki --self --in ca.pem --dn "C=[国家名], O=[组织名], CN=[通用名]" --ca --lifetime 3652 --outform pem > ca.cert.pem

6.生成服务器私钥,然后从私钥中导出公钥,用CA证书签发服务器证书

1 ipsec pki --gen --outform pem > server.pem
2 ipsec pki --pub --in server.pem | ipsec pki --issue --lifetime 3652 --cacert ca.cert.pem --cakey ca.pem --dn "C=[国家名], O=[组织名], CN=[IP 或 domain]" --san="[IP 或 domain]" --flag serverAuth --flag ikeIntermediate --outform pem > server.cert.pem

7.生成客户端私钥,然后从私钥中导出公钥,用CA证书签发客户端证书

ipsec pki --gen --outform pem > client.pem
ipsec pki --pub --in client.pem | ipsec pki --issue --lifetime 3652 --cacert ca.cert.pem --cakey ca.pem --dn "C=[国家名], O=[组织名], CN=[通用名]" --outform pem > client.cert.pem

8.生成 pkcs12 证书,用来导入手机或电脑。此处需输入密码,此密码用于安装CA证书时使用

1 openssl pkcs12 -export -inkey client.pem -in client.cert.pem -name "[此处与第7步中CN同值]" -certfile ca.cert.pem -caname "[CA 证书别名]" -out client.cert.p12

9.strongswam导入证书

1 #cacerts  /目录下放置CA证书
2 #certs    /目录下放置服务器和客户端证书
3 #private  /目录下放置服务器和客户端私钥
4 cp -r ca.cert.pem /etc/strongswan/ipsec.d/cacerts/
5 cp -r server.cert.pem /etc/strongswan/ipsec.d/certs/
6 cp -r server.pem /etc/strongswan/ipsec.d/private/
7 cp -r client.cert.pem /etc/strongswan/ipsec.d/certs/
8 cp -r client.pem /etc/strongswan/ipsec.d/private/

10.修改strongSwan各组件的通用配置

 1 cat >/etc/strongswan/strongswan.conf <<EOF
 2 charon {
 3     load_modular = yes
 4     duplicheck.enable = no                          #冗余检查关闭,以允许同时连接多个设备
 5         compress = yes                                  #传输启用压缩
 6     plugins {
 7         include strongswan.d/charon/*.conf
 8     }
 9     dns1 = 8.8.8.8                                  #给远程端指定DNS服务器
10         dns2 = 8.8.4.4
11         nbns1 = 8.8.8.8                                 #指定Windows的WINS服务器
12         nbns2 = 8.8.4.4
13
14         filelog {                                       #配置strongSwan日志级别和路径
15                 /var/log/strongswan.log {
16                    time_format = %b %e %T
17                    default = 5   # 日志最高等级5
18                    append = no
19                    flush_line = yes
20                 }
21         }
22 }
23
24 include strongswan.d/*.conf
25 EOF 

11.修改IPsec相关的配置,定义IKE版本、验证方式、加密方式、连接属性等等

 1 cat >/etc/strongswan/ipsec.conf <<EOF
 2 config setup
 3     protostack=netkey
 4     # strictcrlpolicy=yes
 5     listen = [IP 或 domain]
 6     uniqueids = never
 7
 8 # Add connections here.
 9
10 # Sample VPN connections
11
12 #conn sample-self-signed
13 #      leftsubnet=10.1.0.0/16
14 #      leftcert=selfCert.der
15 #      leftsendcert=never
16 #      right=192.168.0.2
17 #      rightsubnet=10.2.0.0/16
18 #      rightcert=peerCert.der
19 #      auto=start
20
21 #conn sample-with-ca-cert
22 #      leftsubnet=10.1.0.0/16
23 #      leftcert=myCert.pem
24 #      right=192.168.0.2
25 #      rightsubnet=10.2.0.0/16
26 #      rightid="C=CH, O=Linux strongSwan CN=peer name"
27 #      auto=start
28
29 conn %default                           #默认配置项,其他conn配置项都会调用此默认项
30     left=%any                           #left表示local,即本地端(服务器端)IP地址;%any是魔数字,表示任意地址
31     leftsubnet=0.0.0.0/0                #本地端网络,0.0.0.0/0为通配,表示所有IP网段
32     right=%any                          #right表示remote,即远程端(客户端)IP地址可为任意地址
33     rightsourceip=10.10.10.0/24         #分配给远程端的虚拟IP地址段,尽量避免使用常用私网地址段以免冲突
34     dpdaction=clear                     #dpd表示Dead Peer Detection,对端失效检测,clear表示对端失效时关闭连接
35
36 conn IKEv1-CERT-XAUTH                   #供老版本IOS使用。IKEv1,使用证书和XAUTH验证
37     keyexchange=ikev1                   #密钥交换使用IKEv1
38     fragmentation=yes                   #允许分片
39     leftauth=pubkey                     #本地端使用公钥验证
40     leftcert=server.cert.pem            #指定本地端证书
41     rightauth=pubkey                    #远程端使用公钥验证
42     rightauth2=xauth                    #远程端使用用户账号验证
43     rightcert=client.cert.pem           #指定远程端证书
44     auto=add                            #auto定义strongSwan服务启动时该连接的行为,add是添加连接类型但不启动
45
46 conn IKEv1-PSK-XAUTH                    #供IOS, Android使用。IKEv1,使用预共享密钥和XAUTH验证
47     keyexchange=ikev1                   #密钥交换使用IKEv1
48     leftauth=psk                        #本地端使用预共享密钥验证
49     rightauth=psk                       #远程端使用预共享密钥验证
50     rightauth2=xauth                    #远程端使用用户账号验证
51     auto=add                            #strongSwan启动时添加连接类型但不启动
52     aggressive=yes
53
54 conn IKEv2-CERT                         #供Windows 7+, Linux使用。IKEv2,使用证书验证
55     keyexchange=ikev2                   #密钥交换使用IKEv2
56     leftauth=pubkey                     #本地端使用公钥验证
57     leftcert=server.cert.pem            #指定本地端证书
58     rightauth=pubkey                    #远程端使用公钥验证
59     rightcert=client.cert.pem           #指定远程端证书
60     auto=add                            #strongSwan启动时添加连接类型但不启动
61
62 conn IKEv2-EAP                          #供Windows 7+, IOS9+使用。IKEv2,EAP验证
63     keyexchange=ikev2                   #密钥交换使用IKEv2
64     ike=aes256-sha1-modp1024,aes128-sha1-modp1024,3des-sha1-modp1024!                #第一阶段加密方式
65     esp=aes256-sha256,aes256-sha1,3des-sha1!                  #ESP的顺序与IKE一致
66     rekey=no                            #本地端对Windows远程端发出rekey请求会断开连接,所以需配置为no
67     leftauth=pubkey                     #本地端使用公钥验证
68     leftcert=server.cert.pem            #指定本地端证书
69     leftsendcert=always                 #本地端总是发送证书
70     leftid=[IP 或 domain]                #本地端标识,使用本地端公网IP地址作为标识,和生成服务器证书时的--san参数对应
71     rightauth=eap-mschapv2              #远程端使用eap-mschapv2验证
72     rightsendcert=never                 #不要求远程端发送证书
73     eap_identity=%any                   #指定EAP验证身份,任意账户
74     fragmentation=yes                   #允许分片
75     auto=add                            #strongSwan启动时添加连接类型但不启动
76 EOF

12.定义各类密钥,例如:私钥、预共享密钥、用户账户和密码

1 cat >/etc/strongswan/ipsec.secrets <<EOF
2 : RSA server.pem                        #指定服务器的RSA私钥文件
3 : PSK "[xxxxxxx]"             #配置预共享密钥
4 [username] : XAUTH "[password]"               #配置XAUTH验证的用户名和密码,可配置多个用户账户
5 [username] : EAP "[password]"                 #配置EAP验证的用户名s和密码,可配置多个用户账户
6 EOF

13.设置ipsec.secrets文件权限

1 chmod 600 ipsec.secrets

14.设置网卡转发

1 cat >/etc/sysctl.conf <<EOF 2 net.ipv4.ip_forward = 1 3 EOF 4 sysctl -p

15.配置防火墙,本处使用的firewalld

1 yum install firewall firewall-config
2 firewall-cmd --permanent --add-service=ipsec
3 firewall-cmd --permanent --zone=public --add-masquerade
4 firewall-cmd --permanent --zone=public --add-masqueradefirewall-cmd --permanent --zone=public --add-rich-rule=‘rule family=ipv4 source address=10.8.0.0/24 masquerade‘
5 firewall-cmd --reload

16.配置服务启动

1 chkconfig strongswan on 2 chkconfig firewalld on 3 systemctl start strongswan

注意:

  • 配置中的 C=[国家名], O=[组织名] 值都相同
  • 第六步与第11步中 [IP 或 domain] 值相同

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff }
span.s1 { }
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0px Menlo; color: #000000; background-color: #ffffff }
span.s1 { }

时间: 2024-11-28 23:18:48

Centos 7 搭建 IKEv2 VPN 服务的相关文章

centos6.4安装搭建pptp vpn服务

centos6.4安装搭建pptp vpn服务的大致步骤简介,下面会有详细的步骤(我不喜欢写大纲,决定麻烦,但是有人还是看不懂,所以勉为其难的写了个,实在不会的,我在文章的后面提供一些网上的centos pptp vpn 一键安装包,有人写了就不必再写一遍了,一键安装包要是有问题,也别找我,新手想享受自己亲手一步步具体搭建过程的乐趣,就接着看看吧): 1.先检查vps是否满足配置pptp vpn的环境.因为有的openvz的vps被母鸡给禁用了.其实,你在配置前最好向vps的客服发TK,可能客服

CentOS VPS创建pptpd VPN服务

原文地址http://www.hi-vps.com/wiki/doku.php?id=xen_vps_centos6_install_pptpd CentOS VPS创建pptpd VPN服务 Xen虚拟化技术虚拟的VPS可以直接安装所有VPN服务,而不用询问是否开通了ppp或者tun权限. 本教程仅仅适用于Xen或KVM VPS,不适用于Openvz VPS,安装之前请确定自己是否是符合标准! 1. 下载vpn(CentOS6专用)一键安装包 该教程仅适用于32位Centos6系列,Cento

在CentOS 5.8上搭建PPTP VPN服务

在天朝上网,vpn已经是必备之物了,我也记录一下搭建vpn服务的方法. 1. 确认内核是否支持MPPE模块MPPE用来支持Microsoft Point to Point Encryption, 包括微软和Linux桌面都支持MPPE modprobe ppp-compress-18 && echo ok 2. 安装ppp软件包pptp是使用ppp协议对数据进行封装的,然后将ppp数据帧封装在ip数据报文中. yum install ppp 3. 安装pptp软件包下载32位rpm包: w

CentOS 6搭建PPTP VPN

CentOS 6.5搭建PPTP VPN 1.       安装pptp $ yum -y install ppp pptpd 2.       配置pptpd $ vi /etc/pptpd.conf 将如下两行的注释打开: #localip 192.168.0.1 #remoteip 192.168.0.234-238,192.168.0.245 其中localip是拨入vpn后的网关,remoteip是vpn分配和客户端的地址池,可以自行修改,localip会在pptpd服务器的ppp0网

CentOS VPS创建pptpd VPN服务[转]

本教程仅仅适用于Openv VPS,不适用于Xen VPS或者KVM VPS,安装之前请确定自己是否是Openvz VPS! 本教程仅适用于32位Centos5系列,不能用于Centos6或者64位Centos 1.首先运行如下命令: #cat /dev/net/tun 返回的必须是: #cat: /dev/net/tun: File descriptor in bad state 运行: #cat /dev/ppp 返回的必须是: #cat: /dev/ppp: No such device

搭建自用VPN服务

1:购买国外VPS主机 我选的是DigitalOcean 5$/month  最低配置 每个月有1T的流量 据说超了也不扣费的 2:选择操作系统 我选的是Centos6.8 32位 3:搭建pptp服务 依次执行下面脚本 1: wget http://mirrors.linuxeye.com/scripts/vpn_centos.sh 2: chmod +x ./vpn_centos.sh 3: ./vpn_centos.sh 具体细节参考 https://blog.linuxeye.com/4

Linux 使用xl2tpd搭建l2tp VPN服务

环境: 系统:Centos 安装 ppp xl2tp 配置xl2tp 因为xl2tp是基于ppp的所以我们需要配置xl2tp以及ppp 1)xl2tp.conf 在xl2tp的解压目录下又一个examples目录 创建/etc/xl2tpd目录 将examples/xl2tpd.conf复制到/etc/xl2tpd下 [global] listen-addr = xxx.xxx.xxx.xxx #外网ip port = 1701 auth file = /etc/ppp/chap-secrets

Linux CentOS安装搭建FTP文件服务

本文环境:centos7,IP=192.168.1.11 1.安装vsftpd和默认配置启动 1.1 安装vsftpd yum install -y vsftpd 1.2 启动vsftpd systemctl start vsftpd 查看vsftpd状态和运行 systemctl status vsftpd 或者 netstat -nltp | grep 21 2.配置vsftpd 2.1 配置路径 vsftpd 的配置目录为 /etc/vsftpd,包含下列的配置文件: vsftpd.con

CenOS下搭建VPN服务

公司生产环境使用的是阿里云主机,采用的是两台nginx主机进行反向代理,现在需要内网一台服务器能够访问公网,所以在nginx服务器上搭建了VPN服务,用于进行内网访问公网. 系统环境:CenOS 6.5 所需软件软件:ppp.pptp 系统拓扑: 服务器端: 1 服务器端安装软件   1.1 首先安装ppp,命令:   [[email protected] ~]#yum install -y ppp* 提示Complete! ,安装成功: 1.2安装pptp,安装命令如下: [[email pr