环境:
[root@vpn_server network-scripts]# cat /etc/redhat-release
CentOS release 6.6 (Final)
[root@vpn_server network-scripts]# uname -m
x86_64
准备:
c64
rpm -ivh http://mirrors.aliyun.com/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install yum-priorities -y
c32
rpm -ivh http://mirrors.aliyun.com/epel/6/i386/epel-release-6-8.noarch.rpm
yum install yum-priorities -y
加入 yum 源
rpm -Uvh http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm
实验拓扑:
OS | IP | Role |
Linux | eth0: 198.168.136.137 | pptp_server(vpn_server) |
win7 | vpn_client |
目标:
用户(vpn_client)通过pptp(vpn_server),实现翻墙上网功能。
检查服务器是否有必要的支持.如果检查结果没有这些支持的话,是不能安装pptp的,执行指令:
modprobe ppp-compress-18 && echo ok
这条执行执行后,显示”ok”则表明通过.不过接下来还需要做另一个检查,输入指令:
cat /dev/net/tun
如果这条指令显示结果为下面的文本,则表明通过:
cat: /dev/net/tun: File descriptor in bad state
上述两条均通过,才能安装pptp.否则就只能考虑openvpn,或者请你的服务商来解决这个问题
[root@vpn_server soft]# modprobe ppp-compress-18 && echo ok
ok
[root@vpn_server soft]# cat /dev/net/tun
cat: /dev/net/tun: File descriptor in bad state
Cent os 6.4内核版本在2.6.15以上,都默认集成了MPPE和PPP
1安装ppp,pptpd和iptables(iptables可选).
默认情况下,完整的CentOS是带有这两个组件的,但是精简版的系统可能没有.我们输入下面的命令来确认,如果没有则进行安装
yum install pptpd -y
2配置pptp.
首先我们要编辑/etc/pptpd.conf文件
locapip”和”remoteip”这两个配置项,将前面的”;”注释符去掉,或者更改为你期望的IP段值.
localip表示服务器的IP,
remoteip表示分配给客户端的IP地址
[root@vpn_server soft]# echo “localip 198.168.136.137” >>/etc/pptpd.conf
[root@vpn_server soft]# echo “remoteip 172.16.1.10-15” >>/etc/pptpd.conf
[root@vpn_server soft]# tail -2 /etc/pptpd.conf
localip 198.168.136.137
remoteip 172.16.1.10-15
在编辑/etc/ppp/options.pptpd文件,为VPN添加DNS:
[root@vpn_server soft]# echo “ms-dns 114.114.114.114” >>/etc/ppp/options.pptpd
[root@vpn_server soft]# echo “ms-dns 8.8.8.8” >>/etc/ppp/options.pptpd
[root@vpn_server soft]# tail -2 /etc/ppp/options.pptpd
ms-dns 8.8.8.8
ms-dns 114.114.114.114
设置pptp VPN账号密码.我们需要编辑/etc/ppp/chap-secrets
这个文件:#vim /etc/ppp/chap-secrets在这个文件里面,按照”用户名 pptpd 密码 *”的形式编写,一行一个账号和密码
比如添加用户名为test,密码为123456的用户,则编辑如下内容:test pptpd 123456 *
[root@vpn_server soft]# echo “test pptpd 123456 *” >>/etc/ppp/chap-secrets
[root@vpn_server soft]# tail -1 /etc/ppp/chap-secrets
test pptpd 123456 *
修改内核设置,使其支持转发.编辑/etc/sysctl.conf文件:
#vim /etc/sysctl.conf将”net.ipv4.ip_forward”改为1,变成下面的形式net.ipv4.ip_forward=1
保存退出,并执行下面的命令来生效它:
#sysctl -p
添加iptables转发规则.输入下面的指令:
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j MASQUERADE iptables -A INPUT-i eth0 -p tcp --dport 1723 -j ACCEPT iptables -A FORWARD -i ppp+ -o eth0 -j ACCEPT iptables -A FORWARD -i eth0 -o ppp+ -j ACCEPT iptables -A INPUT -i eth0 -p gre -j ACCEPT iptables -A INPUT -m state--state ESTABLISHED,RELATED -j ACCEPT
需要注意的是,这个指令中的” 172.16.1.0 /24″是根据之前的配置文件中的”localip”网段来改变的
service iptables save
启动pptpd
[root@vpn_server soft]# /etc/init.d/pptpd start
Starting pptpd:[OK ]
[root@vpn_server soft]# netstat -lntp|grep pptpd
tcp0 0 0.0.0.0:1723 0.0.0.0:* LISTEN ?4129/pptpd
在vpn-client上操作
创建一个新的网络连接,略