PPTP IN LINUX
PPTP是微软开发的二层VPN协议,虽然L2TP(CISCO与MS合作将自家的L2F与PPTP整合)性能更优越,但是PPTP还是有市场的.
下面简要介绍Linux上PPTP的安装.其实就是几个软件,建立连接时需要配置的东西极少,很简单.
1. 安装软件
dkms-2.0.6-1 #动态内核模块支持, 驱动的开发和应用简单化,貌似是dell支持的项目
kernel_ppp_mppe-1.0.2-3dkms #MPPE加密协议的内核补丁
ppp-2.4.4-2.el5 #ppp软件包,CentOS 5.6默认安装了
pptpd-1.3.4-1.i386.rpm #这个软件包基本上是很难找的
PPTP的RPM包网上很难找到,官网上给的也是一个tar包.但是常规安装完成之后/etc/pptpd.conf这个文件没有安装, pptpd服务也没有安装,不知道什么原因.在国外的一个网站搜到一个SRPM包,编译后正常使用,地址如下:
http://files.doylenet.net/linux/yum/centos/5/SRPMS/doylenet/pptpd-1.3.4-1.src.rpm
2. 软件安装
安装dkms-2.0.6-1,否则安装kernel_ppp_mppe的时候会有依赖性报错.前面三个软件安装基本上不会出现什么问题,难点就是pptp的安装.当然,如果用srpm包安装的话就很简单了.
rpmbuild --rebuild pptpd-1.3.4-1.src.rpm
然后进入/usr/src对应的系统目录,CentOS就是redhat,然后进入RPMS/i386,刚才编译出的RPM包就放在这个目录下.
[root@www i386]# pwd;ls
/usr/src/redhat/RPMS/i386
pptpd-1.3.4-1.i386.rpm pptpd-debuginfo-1.3.4-1.i386.rpm
然后安装
rpm –ivh pptpd-1.3.4-1.i386.rpm
3. 编辑配置文件 /etc/pptpd.conf和/etc/ppp/chap-secrets
/etc/pptpd.conf定义了建立VPN的IP地址,以及VPN连接建立后分配给客户端的IP地址
例如:
localip 192.168.1.34
拥有帝国一切,皆有可能。欢迎访问phome.net #Linux连接外网建立VPN的地址, 在局域网测试故写的是私有IP
remoteip 192.168.1.100-200 #分配给客户端的IP地址
/etc/ppp/chap-secrets这个文件保存了建立PPP时认证的信息, PPTP是基于PPP的.
例如:
[root@www i386]# vi /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
"ila" pptpd "goodday" "*"
这样有点不安全哈,全是明文的.
4. 打开linux路由器的路由功能
echo “1” >/proc/sys/net/ipv4/ip_forward
这里linux服务器作为VPN网关需要路由功能.
5. 编辑防火墙
防火墙打开了的话需要放行流量
iptables –I INPUT –p tcp --dport 1723 –j ACCEPT
iptables –I INPUT –p gre –j ACCEPT
[root@www ~]# iptables -L INPUT
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT gre -- anywhere anywhere
ACCEPT tcp -- anywhere anywhere tcp dpt:pptp
6. 启动VPN服务
这里用的是restart旨在说明重启服务不会终结当前已经建立的VPN连接,见Warning:
[root@www i386]# service pptpd restart
Shutting down pptpd: [ OK ]
Starting pptpd: [ OK ]
Warning: a pptpd restart does not terminate existing
connections, so new connections may be assigned the same IP
address and cause unexpected results. Use restart-kill to
destroy existing connections during a restart.
上面这段话的意思就是重启服务不会终结已经建立 |