Centos5.8安装pptp VPN 服务器作者:一只风筝

cat /dev/net/tun
如果这条指令显示结果为下面的文本,则表明通过:
cat: /dev/net/tun: File descriptor in bad state

检查PPP是否支持MPPE
用以下命令检查PPP是否支持MPPE:
strings '/usr/sbin/pppd' |grep -i mppe | wc --lines
如果以上命令输出为“0”则表示不支持;输出为“30”或更大的数字就表示支持,MPPE(Microsoft Point to Point Encryption,微软点对点加密)。

二、安装ppp和iptables
默认情况下,完整的CentOS是带有这两个组件的,但是精简版的系统可能没有。我们输入下面的命令来确认,如果没有则进行安装,有的话系统不会做任何动作:
yum install -y ppp iptables 或 yum install -y ppp

安装pptp
wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.i386.rpm (32位系统使用)
wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpm (64位系统使用)
①安装pptp,同样分32位和64位系统:
rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm (32位系统使用)
rpm -ivh pptpd-1.3.4-1.rhel5.1.x86_64.rpm (64位系统使用)
如果安装的时候报如下错误:
warning: pptpd-1.3.4-1.rhel5.1.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 862acc42: NOKEY
error: Failed dependencies:
        ppp = 2.4.4 is needed by pptpd-1.3.4-1.rhel5.1.x86_64
在安装包后面加上两个参数就好,如下:
rpm -ivh pptpd-1.3.4-1.rhel5.1.x86_64.rpm --nodeps --force
加上那两个参数的意义就在于,
安装时不再分析包之间的依赖关系而直接安装,
也就不会再提示error: Failed dependencies:这样的错误了
②配置pptp
编辑/etc/pptpd.conf文件:
mv /etc/pptpd.conf /etc/pptpd.conf.bak
vim /etc/pptpd.conf

option /etc/ppp/options.pptpd
logwtmp
localip 192.168.9.1
remoteip 192.168.9.11-30
localip表示服务器的IP(可以任意设置),remoteip表示分配给客户端的IP地址,可以设置为区间。这里我们使用pptp默认的配置:
③接下来我们再编辑/etc/ppp/options.pptpd文件,为VPN添加Google DNS:

mv /etc/ppp/options.pptpd /etc/ppp/options.pptpd.bak
vim /etc/ppp/options.pptpd
在末尾添加下面两行:
一般只需修改ms-dns,分配给VPN客户端的DNS服务器IP地址
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
idle 2592000 #72个小时空闲断开
ms-dns 8.8.8.8 #设置gogole的DNS
ms-dns 8.8.4.4
④设置pptp VPN账号密码,编辑/etc/ppp/chap-secrets 这个文件:
vim /etc/ppp/chap-secrets
按照“用户名 pptpd 密码 *”的形式编写,一行一个账号和密码。比如添加用户名为linux8080,密码为123456的用户:
linux8080 pptpd 123456 *(指定分配给test用户的ip)
四、修改内核设置,使其支持转发
vim /etc/sysctl.conf
将“net.ipv4.ip_forward”改为1,变成下面的形式:
net.ipv4.ip_forward=1
保存退出,并执行下面的命令来生效它:
sysctl -p
五、添加iptables转发规则,如果没有开启防火墙,请跳过
iptables -t nat -A POSTROUTING -s 192.168.9.0/24 -j SNAT --to-source `ifconfig | grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk 'NR==1 { print $1}'`
①保存iptables规则
/etc/init.d/iptables save
②重启iptables
/etc/init.d/iptables restart
六、重启pptp服务,并且设置开机自动运行服务
# /etc/init.d/pptpd restart
# /etc/init.d/pptpd restart
Shutting down pptpd:                                       [FAILED]
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.
上面这句话的意思是说:VPN服务在重启时,不能终止已存在的VPN连接,所以可能会造成重启VPN服务后,分配相同的IP地址给后来连接的VPN客户机。为了解决以上问题,在停止VPN服务时,可以使用命令“service pptpd restart-kill” 断开所有已存在的VPN连接,然后使用命令“service pptpd start” 重新启动VPN服务。
chkconfig pptpd on
chkconfig iptables on


---
可以链接vpn 无法解析域名请执行以下命令
iptables -D FORWARD -j RH-Firewall-1-INPUT
service iptables save
service iptables restart
时间:2014-1-16 分类:互联网 标签:

看看大家怎么说:1

自己 在2014-05-03 08:20说:
iptables -t nat -A POSTROUTING -j SNAT --to-source x.x.x.x
请替换x.x.x.x与你venet0 IP地址。

返回顶部返回首页