首页 > 系统管理 > Linux下VPN的设定

Linux下VPN的设定

2009年1月13日

VPN服务器有两种,一种是SSL ,代表软件有openvpn,这个SSL VPN在Windows下需要另外安装客户端软件,openVPN自带客户端拨号软件;另外一种是pptpd ,Windows自带这种VPN的客户端拨号软件。本文记录了在CentOS 5 VPS下安装pptpd VPN服务器的过程。

首先检查你的VPS的虚拟技术,看其是否支持VPN,virtuozzo的检测方法可以参见parallel网站的kb

内核安装:

pptpd VPN需要内核支持mppe,内核为2.6.15以后的Linux自带的内核支持该选项,所以我们使用的CentOS5可以跳过下马这步。CentOS4.X没有安装可以用以下方式安装mppe:

rpm -ivh http://poptop.sourceforge.net/yum/stable/packages/dkms-2.0.17.5-1.noarch.rpm
rpm -ivh http://poptop.sourceforge.net/yum/stable/packages/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
检查内核MPPE补丁是否安装成功

# modprobe ppp-compress-18  && echo ok

如果上面没有安装成功,可能是kernal源代码没有安装,用以下方法安装,rpm -e kernel_ppp_mppe
yum install kernel-devel
yum install kernel-smp-devel

cd /lib/modules/2.6.9-67.ELsmp
ln -s /usr/src/kernels/2.6.9-67.EL-i686 build

rpm -ivh kernel_ppp_mppe

如果还有问题,参考这篇trouble shooting Linux PPP connection.

安装VPN pptpd

yum install -y ppp

yum install -y pptpd

配置

#vi /etc/pptpd.conf
在此文件末尾添加如下代码
localip 192.168.0.13
remoteip 192.168.0.234-238,192.168.0.245
添加VPN用户
# vpnuser add testuser test123

或者直接编辑/etc/ppp/chap-secrets文件,有如下信息
# Secrets for authentication using CHAP
# client server secret IP addresses
vpntest * test *
以上设置*意为不限制ip,我们将之改为分配ip为192.168.1.20,也就是说只允许一个用户访问,也可以设置一个ip段
vpntest pptpd test 192.168.1.20
分配的IP只有一個就是192.168.10.20了.說只能一個人同時使用.

启动pptpd:service pptpd start
然后用netstat查看一下1723端口是不是开的,如果是的话则说明服务已成功启动, 如果没有成功,看一下/var/log/messages是什么问题,以后我们vpn进入后有什么调试也可以看这个文件

设置windows拨号,在Properties –> Security Tab 不要选择Require data encryption
如果可以成功连接,说明VPN服务器建立成功了

设置开机自动启动服务
#chkconfig –level 345 pptpd on
#/etc/init.d/pptpd start

最后一步,现在有一个问题,原来这台windows机器可以通过网关192.168.1.1上网,但连了VPN之后就不能上网了。因为数据全到VPN服务器上来了,为解决这个问题,我们可利用iptables发数据转发。
新建一个iptables文件,内容如下
echo 1 >/proc/sys/net/ipv4/ip_forward
以上是零时调整,长期修改,需要膝盖配置文件/etc/sysctl.conf,使net.ipv4.ip_forward = 1

将Linux服务器的1723端口和47端口打开,并打开GRE协议。

iptables -t nat -F
iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -j SNAT –to 67.222.24.91
如果服务器有两块网卡,目标网络/vpn的内部网络为192.168.195.0/24,vpn服务器有2个网卡,其中一个连接公网(eth0),ip地址是61.135.251.51,另外一个网卡连私有网络,ip是192.168.195.166。这样就能正常地路由所涉及的网络了。
/sbin/iptables -t nat -A POSTROUTING -s 192.168.195.0/24 -o eth0 -j SNAT –to-source 67.222.24.91
/sbin/iptables -t nat -A POSTROUTING -s 172.16.195.0/24 -o eth1 -j SNAT –to-source 192.168.195.166
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

/sbin/iptables -A INPUT -p tcp –dport 1723 -j ACCEPT
/sbin/iptables -A INPUT -p tcp –dport 47 -j ACCEPT
/sbin/iptables -A INPUT -p gre -j ACCEPT

pptpd

 

相关:分析pptpd转发测试
http://poptop.sourceforge.net/dox/diagnose-forwarding.phtml
pptpd内核补丁安装问题
http://members.optushome.com.au/~wskwok/poptop_ads_howto_a1.htm
http://bbs.chinaunix.net/viewthread.php?tid=847612
关于MTU问题分析
http://bbs.chinaunix.net/thread-694733-1-1.html
关于GRE封装原理分析
http://www.linuxpf.com.cn/bbs/vi … =page%3D1&frombbs=1
点对点隧道协议PPTP
http://www.linuxpf.com.cn/bbs/vi … =page%3D1&frombbs=1
PPTP流量分析
http://www.microsoft.com/china/t … ableguy/cg0103.mspx
VN:F [1.9.22_1171]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.22_1171]
Rating: 0 (from 0 votes)

系统管理

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.

This blog is kept spam free by WP-SpamFree.