主页 > 仅仅转载 > CentOS VPS创建l2tp VPN服务

CentOS VPS创建l2tp VPN服务

下面是搭建脚本!经过本人再三测试是100%没问题的,互联网上由于转贴众多,很多教程可能未经验证。

#!/bin/bash

function installVPN(){
 echo "begin to install L2TP VPN services";

  yum remove -y pptpd ppp
 iptables --flush POSTROUTING --table nat
  iptables --flush FORWARD
  rm -rf /etc/pptpd.conf
  rm -rf /etc/ppp

 yum -y install openswan gcc libpcap-devel ppp

 mknod /dev/ppp c 108 0
  echo 1 > /proc/sys/net/ipv4/ip_forward
 echo "mknod /dev/ppp c 108 0" >> /etc/rc.local
  echo "echo 1 > /proc/sys/net/ipv4/ip_forward" >> /etc/rc.local
 echo "/usr/local/sbin/xl2tpd" >> /etc/rc.local

  cd /tmp/
  wget http://nchc.dl.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 -rf handlers/l2tp-control /usr/local/sbin/
 mkdir /var/run/xl2tpd/
  ln -s /usr/local/sbin/l2tp-control /var/run/xl2tpd/l2tp-control

 cd ..

 wget -c http://www.xelerance.com/wp-content/uploads/software/xl2tpd/xl2tpd-1.2.8.tar.gz
 tar -zxf xl2tpd-1.2.8.tar.gz
  cd xl2tpd-1.2.8
 make install
  mkdir /etc/xl2tpd
 touch /etc/xl2tpd/xl2tpd.conf
 touch /etc/ppp/options.xl2tpd

 cat >/etc/xl2tpd/xl2tpd.conf<<END
[global]
ipsec saref = yes

[lns default]
local ip = 10.10.11.1
ip range = 10.10.11.2-10.10.11.245
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
END
  cat >/etc/ppp/options.xl2tpd<<END
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
END

  pass=`openssl rand 6 -base64`
 if [ "$1" != "" ]
 then pass=$1
  fi

  echo "vpn * ${pass} *" >> /etc/ppp/chap-secrets

 iptables -t nat -A POSTROUTING -s 10.10.10/8 -o venet0 -j SNAT --to-source `ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk 'NR==1 { print $1}'`
 iptables -A FORWARD -s `ifconfig  | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk 'NR==1 { print $1}'`/32 -o venet0 -j ACCEPT
  service iptables save

 chkconfig iptables on

 service iptables start
  /usr/local/sbin/xl2tpd

  echo "L2TP VPN service is installed, your L2TP VPN username is vpn, VPN password is ${pass}"

}

function repaireVPN(){
 echo "begin to repaire VPN";
  mknod /dev/ppp c 108 0
  service iptables restart

}

function addVPNuser(){
 echo "input user name:"
 read username
 echo "input password:"
  read userpassword
 echo "${username} * ${userpassword} *" >> /etc/ppp/chap-secrets
 service iptables restart

}

echo "which do you want to?input the number."
echo "1. install VPN service"
echo "2. repaire VPN service"
echo "3. add VPN user"
read num

case "$num" in
[1] ) (installVPN);;
[2] ) (repaireVPN);;
[3] ) (addVPNuser);;
*) echo "nothing,exit";;
esac


2.
安装:#bash l2tp_centos.sh1.
以上为CentOS VPS创建l2tp VPN服务的shell脚本,可以看出里面都是自动化执行的命令,其实和网上那些手动搭建教程大同小异!手动搭过的朋友一定不陌生的,就像我!哈哈~~并且脚本执行更安全,方便,还不容易出错!

会有三个选择:     1. 安装l2tp VPN     2. 修复VPN     3.添加VPN用户

先选择1,回车。安装过程会默认生成一个用户名vpn,密码为随机数。

如果想添加用户的话,请重新bash l2tp_centos.sh,然后选择3,输入新用户的用户名和密码即可。

3.在XP上连接L2TP VPN

点击桌面左下角“开始”,再点击“控制面板”

点击“网络和 Internet 连接”

点击“创建一个到您的 工作位置的网络连接”,选择“虚拟专用网络连接”,再点击“下一步”按钮,在输入栏输入连接的名称,这里用“VPN”,再点击“下一步”按钮

选择“不拨初始连接”,再点击“下一步”按钮,输入服务器地址:你的ip地址,再点击“下一步”按钮
建议勾选“在我的桌面上添加一个到此连接的快捷方式”,再点击“完成”按钮,回到“网络和Internet连接”,点击“网络连接”,在“虚拟专用网络”里可以看到刚才建立的连接,找到我们刚才建好的“VPN 连接”右键>属性>网络>VPN类型选为L2TP即可!

由于windows在使用“L2TP/IPsec预共享密钥的VPN连接模式”情况下下仅支持证书,而对于使用psk连接l2tp/ipsec的时候则会会出现789错误,所以只有修改windows注册表,用如下方式修改:在“运行”中输入:

 reg add "HKLM\SYSTEM\CurrentControlSet\Services\RasMan\Parameters" /v ProhibitIPSec /t REG_DWORD /d 1

然后重启XP,l2tp拨号,成功。

4. 在windows7(vista)上连接L2TP VPN

同样由于windowss的愿意,需要修改注册表。由于windowss7权限的问题,需要下载注册表文件,解压后出现reg文件,双击运行ipsec.rar

然后重启,l2tp拨号,成功。

5. 在iphone或者ipad上连接L2TP VPN

同样由于L2TP和ipsec的原因,需要禁用ipsec: 用iFile(没有安装的话在Cydia中搜索安装)在“/etc/ppp”目录下创建一个名为“options”的普通文件,然后点击该文件用“文本查看器”打开,再编辑,输入下面的代码,完成,保存。

plugin L2TP.ppp

l2tpnoipsec

然后正常连接L2TP VPN,OK。

转自 http://maxiaolei.com/centos-vps-l2tp-vpn.html

发表评论

邮箱地址不会被公开。 必填项已用*标注