码迷,mamicode.com
首页 > 其他好文 > 详细

centos6.5 x86_64下编译安装strongswan

时间:2015-07-22 14:56:21      阅读:467      评论:0      收藏:0      [点我收藏+]

标签:

centos6.5 x86_64

1,安装必须的库

yum update

yum install pam-devel openssl-devel make gcc

2,下载strongswan

wget http://download.strongswan.org/strongswan.tar.gz

tar xzf strongswan.tar.gz

cd strongswan-*


3,编译安装

./configure  --enable-eap-identity --enable-eap-md5 --enable-eap-mschapv2 --enable-eap-tls --enable-eap-ttls --enable-eap-peap  --enable-eap-tnc --enable-eap-dynamic --enable-eap-radius --enable-xauth-eap --enable-xauth-pam  --enable-dhcp  --enable-openssl  --enable-addrblock --enable-unity  --enable-certexpire --enable-radattr --enable-tools --enable-openssl --disable-gmp


make && make install

4,生成CA证书私钥

ipsec pki --gen --outform pem > ca.pem

使用私钥签名

ipsec pki --self --in ca.pem --dn "C=col, O=ssvpn, CN=VPNCA" --ca --outform pem >ca.cert.pem

生成服务器证书所需的私钥:

ipsec pki --gen --outform pem > server.pem

用CA证书签发服务器证书

先确认你的服务器的IP地址或域名,以后客户端连接时只能使用证书中的地址连接(多服务器使用相同根证书CA的,请先做好服务器的域名解析),

然后将下面命令中的123.123.123.123替换为自己服务器的IP地址或域名,一共需要替换两处:

ipsec pki --pub --in server.pem | ipsec pki --issue --cacert ca.cert.pem --cakey ca.pem --dn "C=col, O=ssvpn, CN=123.123.123.123" --san="123.123.123.123" --flag serverAuth --flag ikeIntermediate --outform pem > server.cert.pem


注意:以上命令中的”C=”和”O=”的值要与第2步CA中的C,O的值保持一致.


5,生成客户端证书所需的私钥:

ipsec pki --gen --outform pem > client.pem

用CA签名客户端证书(C,O的值要与上面第2步CA的值一致,CN的值随意):

ipsec pki --pub --in client.pem | ipsec pki --issue --cacert ca.cert.pem --cakey ca.pem --dn "C=col, O=ssvpn, CN=VPN Client" --outform pem > client.cert.pem


生成pkcs12证书

openssl pkcs12 -export -inkey client.pem -in client.cert.pem -name "client" -certfile ca.cert.pem -caname "VPNCA"  -out client.cert.p12

注意以上命令中的”-caname”后面的引号里的值必须要与第2步CA中的”CN=”的值保持一致.

输入客户端登录用户密码hello


6,安装证书:

cp -r ca.cert.pem /usr/local/etc/ipsec.d/cacerts/

cp -r server.cert.pem /usr/local/etc/ipsec.d/certs/

cp -r server.pem /usr/local/etc/ipsec.d/private/

cp -r client.cert.pem /usr/local/etc/ipsec.d/certs/

cp -r client.pem  /usr/local/etc/ipsec.d/private/


7,配置strongswan

vi /usr/local/etc/ipsec.conf 将内容完全替换为一下内容

config setup

    uniqueids=never 

conn iOS_cert

    keyexchange=ikev1

    fragmentation=yes

    left=%defaultroute

    leftauth=pubkey

    leftsubnet=0.0.0.0/0

    leftcert=server.cert.pem

    right=%any

    rightauth=pubkey

    rightauth2=xauth

    rightsourceip=10.11.2.0/24

    rightcert=client.cert.pem

    auto=add

conn android_xauth_psk

    keyexchange=ikev1

    left=%defaultroute

    leftauth=psk

    leftsubnet=0.0.0.0/0

    right=%any

    rightauth=psk

    rightauth2=xauth

    rightsourceip=10.11.2.0/24

    auto=add

conn networkmanager-strongswan

    keyexchange=ikev2

    left=%defaultroute

    leftauth=pubkey

    leftsubnet=0.0.0.0/0

    leftcert=server.cert.pem

    right=%any

    rightauth=pubkey

    rightsourceip=10.11.2.0/24

    rightcert=client.cert.pem

    auto=add

conn windows7

    keyexchange=ikev2

    ike=aes256-sha1-modp1024!

    rekey=no

    left=%defaultroute

    leftauth=pubkey

    leftsubnet=0.0.0.0/0

    leftcert=server.cert.pem

    right=%any

    rightauth=eap-mschapv2

    rightsourceip=10.11.2.0/24

    rightsendcert=never

    eap_identity=%any

    auto=add


vi /usr/local/etc/strongswan.conf

charon {

        load_modular = yes

        duplicheck.enable = no

        compress = yes

        plugins {

                include strongswan.d/charon/*.conf

        }

        dns1 = 8.8.8.8

        dns2 = 8.8.4.4

        nbns1 = 8.8.8.8

        nbns2 = 8.8.4.4

}

include strongswan.d/*.conf


vi /usr/local/etc/ipsec.secrets

: RSA server.pem

: PSK "xskywallker"

: XAUTH "uiop890"

law %any : EAP "hello"


将上面的xskywallker单词更改为你需要的PSK认证方式的密钥;

将上面的uiop890单词更改为你需要的XAUTH认证方式的密码,该认证方式的用户名是随意的;

将上面的law改为自己想要的登录名,hello改为自己想要的密码,可以添加多行,得到多个用户,这即是使用IKEv2的用户名+密码认证方式的登录凭据.


启动服务

ipsec start

关闭selinux

sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g‘ /etc/selinux/config

setenforce 0


配置转发

echo 1 > /proc/sys/net/ipv4/ip_forward

sed -i ‘s/net.ipv4.ip_forward=0/net.ipv4.ip_forward=1/g‘ /etc/sysctl.conf

sysctl -p


添加防火墙规则

iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT

iptables -A FORWARD -s 10.11.0.0/24  -j ACCEPT

iptables -A FORWARD -s 10.11.1.0/24  -j ACCEPT

iptables -A FORWARD -s 10.11.2.0/24  -j ACCEPT

iptables -A INPUT -i eth0 -p esp -j ACCEPT

iptables -A INPUT -i eth0 -p udp --dport 500 -j ACCEPT

iptables -A INPUT -i eth0 -p tcp --dport 500 -j ACCEPT

iptables -A INPUT -i eth0 -p udp --dport 4500 -j ACCEPT

iptables -A INPUT -i eth0 -p udp --dport 1701 -j ACCEPT

iptables -A INPUT -i eth0 -p tcp --dport 1723 -j ACCEPT

iptables -A FORWARD -j REJECT

iptables -t nat -A POSTROUTING -s 10.11.0.0/24 -o eth0 -j MASQUERADE

iptables -t nat -A POSTROUTING -s 10.11.1.0/24 -o eth0 -j MASQUERADE

iptables -t nat -A POSTROUTING -s 10.11.2.0/24 -o eth0 -j MASQUERADE

service iptables save


win7下测试

使用 Shrew Soft VPN Client

下载:https://www.shrew.net/download/vpn


安装后打开,选「Add」:

「General」选项卡下,把「Host Name or IP address」添好

「Authorization」选项卡下:

「Authorization Method」选「Mutual PSK + XAuth」

「Local Identity」的「Identification Type」选「IP Address」

「Credentials」下面「Pre Shared Key」里输入 PSK 密码

「Phrase 1」,「Exchange Type」选「Main」

「Phrase 2」,「PFS Exchange」选「auto」

保存。连接时用户名密码是你的 XAUTH 用户名密码。


使用自带客户端(Agile):

导入证书:

开始菜单搜索「cmd」,打开后输入 mmc(Microsoft 管理控制台)。

「文件」-「添加/删除管理单元」,添加「证书」单元

证书单元的弹出窗口中一定要选「计算机账户」,之后选「本地计算机」,确定。

在左边的「控制台根节点」下选择「证书」-「个人」,然后选右边的「更多操作」-「所有任务」-「导入」打开证书导入窗口。

选择刚才生成的 client.cert.p12 文件。下一步输入私钥密码。下一步「证书存储」选「个人」。

导入成功后,把导入的 CA 证书剪切到「受信任的根证书颁发机构」的证书文件夹里面。

打开剩下的那个私人证书,看一下有没有显示「您有一个与该证书对应的私钥」,以及「证书路径」下面是不是显示「该证书没有问题」。

然后关闭 mmc,提示「将控制台设置存入控制台1吗」,选「否」即可。

至此,证书导入完成。

注意 千万不要双击 .p12 证书导入!因为那样会导入到当前用户而不是本机计算机中,ipsec 守护精灵是访问不了它的。

建立连接:

「控制面板」-「网络和共享中心」-「设置新的连接或网络」-「连接到工作区」-「使用我的 Internet 连接」

Internet 地址写服务器地址,注意事项同 openSUSE 的,都是 IP 或都是 URL。

描述随便写。

用户名密码写之前配置的 EAP 的那个。

确定

点击右下角网络图标,在新建的 VPN 连接上右键属性然后切换到「安全」选项卡。

VPN 类型选 IKEv2

数据加密是「需要加密」

身份认证这里需要说一下,如果想要使用 EAP-MSCHAPV2 的话就选择「使用可扩展的身份认证协议」-「Microsoft 安全密码」,想要使用私人证书认证的话就选择「使用计算机证书」。

本文参考http://quericy.me/blog/512

centos6.5 x86_64下编译安装strongswan

标签:

原文地址:http://my.oschina.net/u/2404183/blog/482180

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!