StrongSwan配置IPSEC VPN备忘
这货配了很多次了,但是每次都要去网上找真是不爽……所以还是做个备忘吧,以免再次陷入如此蛋疼的境地……
P.S. 这个是在 Debian Wheezy 下完成的,所以其他平台概不负责:P
####下载、编译
其他貌似还好,只要到 StrongSwan 官网上弄最新的版本就好了……只是编译的配置是比较蛋疼的,虽说只是自用而已,但貌似这个可以用 Radius 的……所以看起来这个是比较适合我的:
./configure --sysconfdir=/etc --enable-eap-identity --enable-eap-mschapv2 --enable-md4 --enable-integrity-test --enable-test-vectors --disable-sql --disable-mysql --enable-xauth-eap --enable-eap-radius --enable-eap-md5 --prefix=/usr --enable-openssl --enable-shared --enable-eap-peap --enable-dhcp
后来的事情就比较简单了,直接去做 make && make install
就可以了。当然,如果在 configure 过程中出现错误提示只要根据提示去 apt-get
就好了。
####StrongSwan配置
这个就是关键问题了……由于本人使用的习惯,采用了针对iOS使用证书+PSK、对其他平台采用 XAUTH PSK 的方式,由于 Windows 几乎不使用,所以暂时没有添加 ikev2。至于证书,为了方便,直接使用 StartSSL 提供的免费证书,然后以下为配置文件:
ipsec.conf
config setup
uniqueids=never
conn iOS_cert
keyexchange=ikev1
left=%defaultroute
leftauth=pubkey
leftsubnet=0.0.0.0/0
leftcert=server.cert.pem
right=%any
rightauth=pubkey
rightauth2=xauth
rightsourceip=10.0.0.0/24
rightcert=client.cert.pem
auto=add
# also supports iOS PSK and Shrew on Windows
conn android_xauth_psk
keyexchange=ikev1
left=%defaultroute
leftauth=psk
leftsubnet=0.0.0.0/0
right=%any
rightauth=psk
rightauth2=xauth
rightsourceip=10.0.0.0/24
auto=add
strongswan.conf
# strongswan.conf - strongSwan configuration file
charon {
duplicheck.enable = no
dns1 = 208.67.222.222
dns2 = 208.67.220.220
# for Windows only
nbns1 = 208.67.222.222
nbns2 = 208.67.220.220
filelog {
/var/log/strongswan.charon.log {
time_format = %b %e %T
default = 2
append = no
flush_line = yes
}
stderr {
# more detailed loglevel for a specific subsystem, overriding the
# default loglevel.
ike = 3
knl = 3
# prepend connection name, simplifies grepping
ike_name = yes
}
}
}
ipsec.secrets
#
# ipsec.secrets
#
# This file holds the RSA private keys or the PSK preshared secrets for
# the IKE/IPsec authentication. See the ipsec.secrets(5) manual page.
#
: RSA server.key.pem
: PSK "PSK password"
username : XAUTH "user password"
剩下的就是把各种证书倾倒到 /etc/ipsec.d
下的 cacerts
、certs
、 private
中了。然后执行 ipsec start --nofork
,查看是否能够正常运行。如若能运行的话,那么基本就没什么问题了。
####配置 iptables 这个就非常简单了,可以说就是一句话
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE
地址和接口根据自己实际情况修改即可。
当然,一个非常重要的事情,就是千万不要忘记对/etc/sysctl.conf
的修改,开启 ip_forward,然后做一次 sysctl -p
以令更改生效。
其余的就没什么了,享受科学上网吧!
同时感谢以下来源的帮助:
[1] 使用 Strongswan 架设 Ipsec VPN
[2] 使用openswan搭建{ikev1,ikev2,l2tp} VPN w/Radius {auth,accounting}