CentOS 5.5 安装 IPSEC / L2TP VPN

CentOS 5.5 安装 IPSEC / L2TP VPN

 

继续折腾 Linode VPS , 上次成功的学会了 Linode VPS (LAMP+ PPTP VPN)配置笔记 ,更进一步,学习安装 IPSEC / L2TP VPN 。 在这里记录一下安装过程、与遇到的问题。

 

已经安装的工作环境为 Linode VPS + CentOS 5.5  32 bit

一、部署IPSEC 、安装 openswan

1、关联包

yum install make gcc gmp-devel bison flex

2、编译安装

cd /usr/src
wget http://www.openswan.org/download/openswan-2.6.24.tar.gz
tar zxvf openswan-2.6.24.tar.gz
cd openswan-2.6.24
make programs install

3、配置

vi /etc/ipsec.conf

config setup
nat_traversal=yes
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
oe=off
protostack=netkey

conn L2TP-PSK-NAT
rightsubnet=vhost:%priv
also=L2TP-PSK-noNAT

conn L2TP-PSK-noNAT
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
ikelifetime=8h
keylife=1h
type=transport
left=YOUR.SERVER.IP.ADDRESS
leftprotoport=17/1701
right=%any
rightprotoport=17/%any

4、 设置 Shared Key

vi /etc/ipsec.secrets

YOUR.SERVER.IP.ADDRESS %any: PSK “YourSharedSecret”

 

(别忘了把红色的「YOUR.SERVER.IP.ADDRESS」这部分换成你的服务器的 IP 地址,把「zhimakaimen」部分换成随便一个字串,例如你喜欢的一句话如 ilovemoney,等等。)

 

5、 修改包转发设置

for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done

6、 重启 IPSec ,测试

/etc/init.d/ipsec restart
ipsec verify

.

二、安装 L2TP

1、关联包

yum install libpcap-devel ppp

2、编译安装

cd /usr/src
wget http://downloads.sourceforge.net/project/rp-l2tp/rp-l2tp/0.4/rp-l2tp-0.4.tar.gz
tar zxvf rp-l2tp-0.4.tar.gz
cd rp-l2tp-0.4
./configure
make
cp handlers/l2tp-control /usr/local/sbin/
mkdir /var/run/xl2tpd/
ln -s /usr/local/sbin/l2tp-control /var/run/xl2tpd/l2tp-control

cd /usr/src
wget  http://www.xelerance.com/software/xl2tpd/xl2tpd-1.2.4.tar.gz
tar zxvf xl2tpd-1.2.4.tar.gz
cd xl2tpd-1.2.4
make install

3、配置

mkdir /etc/xl2tpd
vi /etc/xl2tpd/xl2tpd.conf

[global]
ipsec saref = yes

[lns default]
ip range = 10.1.2.2-10.1.2.254
local ip = 10.1.2.1
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

4、修改 ppp 配置

vi /etc/ppp/options.xl2tpd

require-mschap-v2
ms-dns 8.8.8.8
ms-dns 8.8.4.4
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4

5、添加用户名/密码

vi /etc/ppp/chap-secrets

# user      server      password            ip
username        l2tpd       userpass        *

6、启用包转发

iptables --table nat --append POSTROUTING --jump MASQUERADE

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

 

7、修改/etc/sysctl.conf

vi  /etc/sysctl.conf

net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.shmmax = 68719476736
kernel.shmall = 4294967296

 

/sbin/sysctl -p    保存修改

8、启动 xl2tpd

/usr/local/sbin/xl2tpd

.

三、扫尾

设置开机自动运行

vi /etc/rc.local

iptables --table nat --append POSTROUTING --jump MASQUERADE

echo 1 > /proc/sys/net/ipv4/ip_forward
for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
/etc/init.d/ipsec restart
/usr/local/sbin/xl2tpd

.

四、已知问题

1、长宽之下连接不成功。 IP 地址被干扰了。就如同去 长宽用户在ip138.com 查不到实际 ip ( 但 Gmail 确能记录真实 ip )。

服务器端错误日志

the peer proposed: 服务器ip/32:17/1701 -> 175.189.178.120/32:17/0

peer proposal was reject in a virtual connection policy because

a private network virtual IP was required, but the proposed IP did not match our list (virtual_private=)

补记1:
错怪长宽了。其实出现上面这句话,并不能代表是长宽设备 IP 分配的问题导致连结不成功。 昨晚查了很多资料,然后发现不少同学出现这个问题。 原因在于 openswan 本身的 bug 。 最后重新编译安装 openswan-2.6.28 取代 openswan-2.6.24 ,问题华丽的解决了。能成功连接 l2tp 后,secure 日志记录中还是可以有上面一段迷惑人的纪录。

补记2:
Linode VPS + CentOS 5.5 成功安装 IPSEC/ L2TP VPN 后的状态

2、 L2TP  VPN 768 错误

IPSEC services 被关掉了。“运行”“services.msc”然后在服务中启用“IPSEC services” 即可。

.

以上内容90%抄自  Linode CentOS / Debian 部署 ipsec+l2tpd 简要笔记 ,部分参考自  CentOS安装L2TP/IPSEC 与简单故障处理

Last modified onSaturday, 05 January 2013 13:15

( ! ) Warning: count(): Parameter must be an array or an object that implements Countable in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/com_k2/templates/default/item.php on line 169
Call Stack
#TimeMemoryFunctionLocation
10.0011412136{main}( ).../index.php:0
20.08784262120Joomla\CMS\Application\SiteApplication->execute( ).../index.php:49
30.08784262120Joomla\CMS\Application\SiteApplication->doExecute( ).../CMSApplication.php:196
40.402911452880Joomla\CMS\Application\SiteApplication->dispatch( ).../SiteApplication.php:233
50.404111477208Joomla\CMS\Component\ComponentHelper::renderComponent( ).../SiteApplication.php:194
60.405211532536Joomla\CMS\Component\ComponentHelper::executeComponent( ).../ComponentHelper.php:377
70.405611559936require_once( '/var/www/vhosts/shan.info/httpdocs/components/com_k2/k2.php' ).../ComponentHelper.php:402
80.416311959568K2ControllerItem->execute( ).../k2.php:64
90.416311959568K2ControllerItem->display( ).../BaseController.php:710
100.425812610272K2ControllerItem->display( ).../item.php:78
110.425812610272K2ControllerItem->display( ).../controller.php:19
120.430412981312Joomla\CMS\Cache\Controller\ViewController->get( ).../BaseController.php:663
130.432113001680K2ViewItem->display( ).../ViewController.php:102
140.521715861344K2ViewItem->display( ).../view.html.php:742
150.521715861344K2ViewItem->loadTemplate( ).../HtmlView.php:230
160.523816034280include( '/var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/com_k2/templates/default/item.php' ).../HtmlView.php:701
  • Published in VPN
  • Read 4315 times

( ! ) Notice: Only variables should be assigned by reference in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/com_k2/templates/default/item.php on line 478
Call Stack
#TimeMemoryFunctionLocation
10.0011412136{main}( ).../index.php:0
20.08784262120Joomla\CMS\Application\SiteApplication->execute( ).../index.php:49
30.08784262120Joomla\CMS\Application\SiteApplication->doExecute( ).../CMSApplication.php:196
40.402911452880Joomla\CMS\Application\SiteApplication->dispatch( ).../SiteApplication.php:233
50.404111477208Joomla\CMS\Component\ComponentHelper::renderComponent( ).../SiteApplication.php:194
60.405211532536Joomla\CMS\Component\ComponentHelper::executeComponent( ).../ComponentHelper.php:377
70.405611559936require_once( '/var/www/vhosts/shan.info/httpdocs/components/com_k2/k2.php' ).../ComponentHelper.php:402
80.416311959568K2ControllerItem->execute( ).../k2.php:64
90.416311959568K2ControllerItem->display( ).../BaseController.php:710
100.425812610272K2ControllerItem->display( ).../item.php:78
110.425812610272K2ControllerItem->display( ).../controller.php:19
120.430412981312Joomla\CMS\Cache\Controller\ViewController->get( ).../BaseController.php:663
130.432113001680K2ViewItem->display( ).../ViewController.php:102
140.521715861344K2ViewItem->display( ).../view.html.php:742
150.521715861344K2ViewItem->loadTemplate( ).../HtmlView.php:230
160.523816034280include( '/var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/com_k2/templates/default/item.php' ).../HtmlView.php:701
back to top