L2TP 一键安装包

  • Published in VPN

转贴自

http://zeddicus.com/a-key-installation-package-l2tp

 

这是 L2TP over IPSec Server 一键安装包的发布页,此安装包首发于 VPSYou.com

当前版本:1.2

发行版版本兼容性
CentOS5.2 32/64bit测试通过
CentOS5.3 32/64bit测试通过
CentOS5.4 32/64bit测试通过
CentOS5.5 32/64bit测试通过
Ubuntu9.10 Karmic 32/64bit测试通过
Ubuntu10.04 Lucid 32/64bit测试通过
Debian5.0 Lenny 32/64bit测试通过
Fedora13 32/64bit测试通过

配置步骤:

CentOS / Fedora:

?View Code LANGUAGE

Ubuntu / Debian:

?View Code LANGUAGE

备注:安装按提示操作,相关截图及细节请移驾至:http://www.vpsyou.com/l2tp-vpn

 

代码

-----------------------------------------------------------------------------------------------------------------

#!/bin/bash

if [ $(id -u) != "0" ]; then
printf "Error: You must be root to run this tool!\n"
exit 1
fi
clear
printf "
####################################################
#                                                  #
# This is a Shell-Based tool of l2tp installation  #
# Version: 1.2                                     #
# Author: Zed Lau                                  #
# Website: http://zeddicus.com                     #
#                                                  #
####################################################
"
vpsip=`hostname -i`

iprange="10.0.99"
echo "Please input IP-Range:"
read -p "(Default Range: 10.0.99):" iprange
if [ "$iprange" = "" ]; then
iprange="10.0.99"
fi

mypsk="vpsyou.com"
echo "Please input PSK:"
read -p "(Default PSK: vpsyou.com):" mypsk
if [ "$mypsk" = "" ]; then
mypsk="vpsyou.com"
fi

clear
get_char()
{
SAVEDSTTY=`stty -g`
stty -echo
stty cbreak
dd if=/dev/tty bs=1 count=1 2> /dev/null
stty -raw
stty echo
stty $SAVEDSTTY
}
echo ""
echo "ServerIP:"
echo "$vpsip"
echo ""
echo "Server Local IP:"
echo "$iprange.1"
echo ""
echo "Client Remote IP Range:"
echo "$iprange.2-$iprange.254"
echo ""
echo "PSK:"
echo "$mypsk"
echo ""
echo "Press any key to start..."
char=`get_char`
clear
mknod /dev/random c 1 9
yum -y update
yum -y upgrade
yum install -y ppp iptables make gcc gmp-devel xmlto bison flex xmlto libpcap-devel lsof vim-enhanced
mkdir /ztmp
mkdir /ztmp/l2tp
cd /ztmp/l2tp
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
rm -rf /etc/ipsec.conf
touch /etc/ipsec.conf
cat >>/etc/ipsec.conf<<EOF
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=$vpsip
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
EOF
cat >>/etc/ipsec.secrets<<EOF
$vpsip %any: PSK "$mypsk"
EOF
sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf
sysctl -p
iptables --table nat --append POSTROUTING --jump MASQUERADE
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
ipsec verify
cd /ztmp/l2tp
wget http://mirror.zeddicus.com/sources/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 /ztmp/l2tp
wget http://mirror.zeddicus.com/sources/xl2tpd-1.2.4.tar.gz
tar zxvf xl2tpd-1.2.4.tar.gz
cd xl2tpd-1.2.4
make install
mkdir /etc/xl2tpd
rm -rf /etc/xl2tpd/xl2tpd.conf
touch /etc/xl2tpd/xl2tpd.conf
cat >>/etc/xl2tpd/xl2tpd.conf<<EOF
[global]
ipsec saref = yes
[lns default]
ip range = $iprange.2-$iprange.254
local ip = $iprange.1
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
EOF
rm -rf /etc/ppp/options.xl2tpd
touch /etc/ppp/options.xl2tpd
cat >>/etc/ppp/options.xl2tpd<<EOF
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
EOF
cat >>/etc/ppp/chap-secrets<<EOF
test l2tpd test123 *
EOF
touch /usr/bin/zl2tpset
echo "#/bin/bash" >>/usr/bin/zl2tpset
echo "for each in /proc/sys/net/ipv4/conf/*" >>/usr/bin/zl2tpset
echo "do" >>/usr/bin/zl2tpset
echo "echo 0 > \$each/accept_redirects" >>/usr/bin/zl2tpset
echo "echo 0 > \$each/send_redirects" >>/usr/bin/zl2tpset
echo "done" >>/usr/bin/zl2tpset
chmod +x /usr/bin/zl2tpset
iptables --table nat --append POSTROUTING --jump MASQUERADE
zl2tpset
xl2tpd
cat >>/etc/rc.local<<EOF
iptables --table nat --append POSTROUTING --jump MASQUERADE
/etc/init.d/ipsec restart
/usr/bin/zl2tpset
/usr/local/sbin/xl2tpd
EOF
clear
ipsec verify
printf "
####################################################
#                                                  #
# This is a Shell-Based tool of l2tp installation  #
# Version: 1.2                                     #
# Author: Zed Lau                                  #
# Website: http://zeddicus.com                     #
#                                                  #
####################################################
if there are no [FAILED] above, then you can
connect to your L2TP VPN Server with the default
user/pass below:

ServerIP:$vpsip
username:test
password:test123
PSK:$mypsk

"
---------------------------------------------------------------------------------------------------------------

Read more...

CentOS PPTP L2TP over IPSec

  • Published in VPN

转贴自 http://logicmd.net/2010/12/setup-pptp-and-l2tp-over-ipsec-on-centos/

 

CentOS上部署PPTP和L2TP over IPSec简要笔记

PPTP部署

安装 PPTP 需要 MPPE 和较高版本的 ppp ( > 2.4.3 ) 支持,不过 CentOS 5.0/RHEL 5 的 2.6.18 内核已经集成了 MPPE 和高版本的 ppp 。因此可以跳过安装配置 MPPE 和 ppp 的过程直接安装 PPTP

如果需要检查 MPPE 是否存在可以使用以下命令:

shell> modprobe ppp-compress-18 && echo ‘MPPE found !’

1.安装 pptpd
32位
1
2
3
4
#确保安装了ppp 和 iptables
yum install -y ppp iptables
wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm
rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm

Notice:

  1. 官网http://poptop.sourceforge.net/已经删掉了1.3.4版的pptpd的RPM,所以只好在这个地方下载  :-(
  2. 判断CentOS系统是32位还是64位? getconf LONG_BIT
2.配置文件编写

①.配置文件/etc/ppp/options.pptpd

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mv /etc/ppp/options.pptpd /etc/ppp/options.pptpd.bak
cat >>/etc/ppp/options.pptpd<<EOF
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
idle 2592000
ms-dns 8.8.8.8
ms-dns 8.8.4.4
EOF

name pptpd : pptpd server 的名称。

refuse-pap : 拒绝 pap 身份验证模式。

refuse-chap : 拒绝 chap 身份验证模式。

refuse-mschap : 拒绝 mschap 身份验证模式。

require-mschap-v2 : 在端点进行连接握手时需要使用微软的 mschap-v2 进行自身验证。

require-mppe-128 : MPPE 模块使用 128 位加密。

ms-dns 8.8.8.8

ms-dns 8.8.4.4 : ppp 为 Windows 客户端提供 DNS 服务器 IP 地址,第一个 ms-dns 为 DNS Master,第二个为 DNS Slave。

proxyarp : 建立 ARP 代理键值。

debug : 开启调试模式,相关信息同样记录在 /var/logs/message 中。

lock : 锁定客户端 PTY 设备文件。

nobsdcomp : 禁用 BSD 压缩模式。

novj

novjccomp : 禁用 Van Jacobson 压缩模式。

nologfd : 禁止将错误信息记录到标准错误输出设备(stderr)。

②.配置文件/etc/ppp/chap-secrets

1
2
mv /etc/ppp/chap-secrets /etc/ppp/chap-secrets.bak
vi /etc/ppp/chap-secrets

输入以下内容

1
2
3
# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
myusername pptpd mypassword *

③.配置文件/etc/pptpd.conf

1
2
3
4
5
6
7
8
mv /etc/pptpd.conf /etc/pptpd.conf.bak
cat >>/etc/pptpd.conf<<EOF
#pptpd.conf
option /etc/ppp/options.pptpd
logwtmp
localip 10.82.18.1
remoteip 10.82.18.2-254
EOF

注:为拨入VPN的用户动态分配10.82.18.2~10.82.18.254之间的IP

④.配置文件/etc/sysctl.conf(修改内核转发参数)

上一篇博文所述,可以sysctl -w net.ipv4.ip_forward=1,也可以

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

直接替换/etc/sysctl.conf的内容。这样写的好处在于不必在启动脚本/etc/rc.local中添加sysctl -w net.ipv4.ip_forward=1,一劳永逸。

IPSec+L2TP部署

这部分部署方法已经有现成的一键脚本,怕麻烦的用户可以直接拿去跑。但是本着不求甚解的原则还是一步步列出。

L2TP (Layer 2 Tunneling Protocol) 是VPN隧道协议的一种,它使用UDP的1701端口进行通信。L2TP本身并没有任何加密,但是我们可以使用IPSecL2TP包进行加密。更多关于L2TP的理论知识可以访问这个Wiki

因为联通和移动陆续封掉了 PPTP 数据包,所以L2TP是移动设备VPN几乎唯一选择(OpenVPN配置稍显麻烦)。

Linux环境下,有很多方法配置L2TP;一个选项是采用openl2tpd,但是他对老版本的ppp隧道支持不好。更重要的是在CentOS环境下,它要求内核需要patch,我想没多少人希望没事给内核patch吧。

基于这个原因,本文选择了xl2tpd & rp-l2tpdxl2tpd 是由 Xelerance Corporation 维护的l2tpd应用。但是xl2tpd 没有l2tp-control,需要从rp-l2tp这个里面提取。

1.安装OpenSwan

经典的2.6.24这个版本和最新的2.6.32都可以。

1
2
3
4
5
6
#安装依赖
yum install make gcc gmp-devel bison flex
wget http://www.openswan.org/download/openswan-2.6.32.tar.gz
tar zxvf openswan-2.6.32.tar.gz
cd openswan-2.6.32
make programs install

①.修改配置文件/etc/ipsec.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
mv /etc/ipsec.conf /etc/ipsec.conf.bak
cat >>/etc/ipsec.conf<<EOF
#ipsec.conf
version 2.0
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
EOF

②.设置 PSK

1
2
3
4
rm -r /etc/ipsec.secrets
cat >>/etc/ipsec.secrets<<EOF
YOUR.SERVER.IP.ADDRESS %any: PSK "YourSharedSecret"
EOF

③.修改包转发设置

1
2
3
4
5
6
7
8
for each in /proc/sys/net/ipv4/conf/*
do
echo 0 > $each/accept_redirects
echo 0 > $each/send_redirects
done
#若PPTP部分设置过,则下面不必在设置
sed -i 's/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g' /etc/sysctl.conf
sysctl -p

重新启动 ipsec,并测试运行效果

1
2
service ipsec restart
ipsec verify

若无FAIL即为正常。
这个时候 ipsec 部分完成了,可以测试一下,新建一个 ipsec+l2tp 的连接,填好服务器地址和 SharedKey,点连接。在服务端

1
2
3
tail -f /var/log/secure
#若出现以下内容,这代表IPSec一切正常
#pppd[3624]: IPSec connection established
2.安装xl2tpd和rp-l2tp

①.下载编译安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#安装依赖
yum install libpcap-devel ppp
#rp-l2tp
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
#xl2tpd
cd..
wget  http://ywko.googlecode.com/files/xl2tpd-1.2.4.tar.gz
tar zxvf xl2tpd-1.2.4.tar.gz
cd xl2tpd-1.2.4
make install

官网的xl2tpd已经404,所以…

②.写配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
mkdir /etc/xl2tpd
rm -f /etc/xl2tpd/xl2tpd.conf
cat >>/etc/xl2tpd/xl2tpd.conf<<EOF
#/etc/xl2tpd/xl2tpd.conf
[global]
ipsec saref = yes
[lns default]
ip range = 10.82.88.2-10.82.88.254
local ip = 10.82.88.1
refuse chap = yes
refuse pap = yes
require authentication = yes
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
EOF
rm -f /etc/ppp/options.xl2tpd
cat >>/etc/ppp/options.xl2tpd<<EOF
#/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
EOF

③.设置密码/etc/ppp/chap-secrets

输入以下内容

1
2
3
# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
myusername l2tpd mypassword *

服务启动

1.配置防火墙iptables
1
2
3
4
5
6
service iptables start
#可以考虑
#iptables -t nat -A POSTROUTING -o eth0 -s 10.82.18.0/24 -j MASQUERADE
#iptables -t nat -A POSTROUTING -o eth0 -s 10.82.88.0/24 -j MASQUERADE
#考虑到之后还要配置L2TP,直接一下倒显得更加简便
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

OpenVZ用户将eth0换成venet0即可。

2.启动
1
2
3
4
service pptpd start
ipsec verify
service ipsec restart
xl2tpd
3.配置自启动脚本,添加以下内容到/etc/rc.local
1
2
3
4
5
6
7
8
iptables --table nat --append POSTROUTING --jump MASQUERADE
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

参考资料:

Read more...

centos 5.5 pptpd install

  • Published in VPN

http://space.itpub.net/665930/viewspace-682794

 

9、设置开机自动运行服务。我们最后一步是将pptp和iptables设置为开机自动运行,这样就不需要每次重启服务器后手动启动服务了。当然你不需要自动启动服务的话可以忽略这一步。输入指令:

#chkconfig pptpd on

 

PPTP 全称为 Point to Point Tunneling Protocol — 点到点隧道协议,是VPN协议中的一种。

安装相关软件

  1. yum install -y ppp iptables
  2. wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.3.4-1.rhel5.1.i386.rpm
  3. rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm

配置文件/etc/ppp/options.

  1. mv /etc/ppp/options.pptpd /etc/ppp/options.pptpd.bak
  2. vi /etc/ppp/options.pptpd

输入以下内容:

  1. #相当于身份验证时的域,一定要和/etc/ppp/chap-secrets中的内容对应
  2. name pptpd
  3. #传输加密。ppp-2.4.2以上的版本只支持MPPE加密,内核模块为 ppp_mppe.o
  4. #拒绝pap,chap身份验证
  5. refuse-pap
  6. refuse-chap
  7. #拒绝mschap身份验证
  8. refuse-mschap
  9. #采用mschap-v2(Microsoft Challenge Handshake Authentication Protocol, Version 2)身份验证方式
  10. require-mschap-v2
  11. #在采用mschap-v2身份验证方式时要使用MPPE进行加密
  12. require-mppe-128
  13. #启动ARP代理
  14. proxyarp
  15. lock
  16. nobsdcomp
  17. novj
  18. novjccomp
  19. nologfd
  20. #分配给客户的DNS,这里用的是opendns
  21. ms-dns 208.67.222.222
  22. ms-dns 208.67.220.220

配置文件/etc/ppp/chap-secrets

  1. mv /etc/ppp/chap-secrets /etc/ppp/chap-secrets.bak
  2. vi /etc/ppp/chap-secrets

输入以下内容

  1. # Secrets for authentication using CHAP
  2. # client        server  secret                  IP addresses
  3. vi                pptpd  viyin.net                   *

用户名vi,密码viyin.net ,*表示任意ip
pptpd要和/etc/ppp/options.pptpd中的name 部分的pptpd匹配

配置文件/etc/pptpd.conf

  1. mv /etc/pptpd.conf /etc/pptpd.conf.bak
  2. vi /etc/pptpd.conf

输入以下内容:

  1. option /etc/ppp/options.pptpd
  2. logwtmp
  3. localip 10.100.1.1
  4. remoteip 10.100.1.20-50

为拨入VPN的用户动态分配IP

打开防火墙端口
1723端口和47端口打开,打开GRE协议

  1. /sbin/iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
  2. /sbin/iptables -A INPUT -p tcp --dport 47 -j ACCEPT
  3. /sbin/iptables -A INPUT -p gre -j ACCEPT
  4. /sbin/iptables  -A POSTROUTING -t nat -s 10.100.1.0/24 -o seth0 -j MASQUERADE

配置文件/etc/sysctl.conf

vi /etc/sysctl.conf
修改以下内容:

net.ipv4.ip_forward = 1
开启NAT转发功能

保存、退出后执行:

/sbin/sysctl -p

启动PPTP VPN 服务器端:

/sbin/service pptpd start

检查PPP是否支持MPPE,用以下命令检查PPP是否支持MPPE:

strings ‘/usr/sbin/pppd’ |grep -i mppe | wc –lines

果以上命令输出为“0”则表示不支持;输出为“30”或更大的数字就表示支持。

注意:

如果一直提示619或者800错误,查看日志

Read more...
Subscribe to this RSS feed
Notice: Undefined offset: 1 in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/pagination.php on line 18

Notice: Undefined offset: 1 in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/pagination.php on line 34

Notice: Undefined offset: 2 in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/pagination.php on line 34

Notice: Undefined offset: 3 in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/pagination.php on line 34

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/category.php on line 191

Notice: Undefined offset: 1 in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/pagination.php on line 18

Notice: Undefined offset: 1 in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/pagination.php on line 34

Notice: Undefined offset: 2 in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/pagination.php on line 34

Notice: Undefined offset: 3 in /var/www/vhosts/shan.info/httpdocs/templates/gk_publisher/html/pagination.php on line 34