0%

Linux VPN 配置

安装环境:RHEL4 update 1

一、下载VPN服务器所需软件

dkms-2.05-1.noarch.rpm
动态内核模块支持的RPM安装包
kernel_ppp_mppe-0.0.5-2dkms.noarch.rpm
MPPE加密协议的内核补丁的RPM安装包
ppp-2.4.3-5.rhel4.i386.rpm
升级内置PPP到2.4.3版本,以支持MPPE加密协议
pptpd-1.3.0-0.i386.rpm
pptp点对点隧道协议的RPM安装包

下载地址:

http://prdownloads.sourceforge.net/poptop/

1
2
3
4
rpm -ivh dkms-~
rpm -ivh kernel_ppp_~
rpm -Uvh ppp-2.~
rpm -ivh pptpd-1.3~

修改/etc/pptpd.conf/etc/ppp/chap-secrets文件来配置VPN服务器的运行参数

主配置文件:
vi /etc/pptpd.conf

加入以下配置语句:

1
2
3
4
localip 192.168.1.115
remoteip 192.168.16.0-192.168.16.254,192.168.1.254
#localip 本地VPN服务器所使用的IP地址,供VPN客户端连接使用。
#remoteip 分配给VPN客户机的地址段。可以使用“-”表示一个段,也可以使用“,”隔开不连续的地址。

配置帐号文件:
vi /etc/ppp/chap-secrets
该文件保存了VPN客户端拨入时所使用的帐户名,口令,和分配的IP地址,格式为:
帐户名 服务 口令 分配给该帐户的IP地址

1
2
"test" pptpd "test" "*"
"test2" pptpd "test2" "192.168.1.254"

打开Linux内核的路由功能
为了能让VPN客户机与内部网络互联,还应打开Linux内核的路由功能,否则VPN客户端只能访问VPN服务器的内部网卡,所以需打开Linux内核的路由功能。

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

启动和停止VPN服务:

1
2
3
4
启动:/etc/init.d/pptpd start
停止:/etc/init.d/pptpd stop
重启:/etc/init.d/pptpd restart
# pptpd restart-kill :在停止VPN服务时,断开所有的已经存在的VPN连接,然后使用命令/etc/init.d/pptpd start 启动VPN服务。

自动启动VPN服务
ntsysv
选中pptpd

防火墙设置:
说明:pptp服务使用TCP协议的1723端口和编号47的IP协议(GRE常规路由封装)。如果Linux服务器开启了防火墙功能,就需关闭防火墙功能或设置允许TCP协议的1723端口和编号47的IP协议通过,如可以使用以下命令开放TCP协议的1723端口和编号为47的IP协议

1
2
iptables -I INPUT -p tcp –dport 1723 -j ACCEPT
iptables -I INPUT -P gre -j ACCEPT

参考文章:

http://fanqiang.chinaunix.net/app/vpn/2005-04-06/3112.shtml

PPTP连接异常断开,VPN服务器上还保留连接

这种情况多为用户拨入后异常断开如直接拨网线,VPN服务器没有及时检测到中断信号,所以存在一个死连接(有时死连接存在10个小时以上或一直存在)。对于Linux平台的VPN服务器,大部分异常断开后,服务器的 pptpctrl程序会中断连接,但有时无法中断,导致死连接的存在。

ifconfig pppX down 把死链中断