linux「Red Hat 6.2/centos」下PPTP VPN的搭建过程


1、我的系统环境【避免由于系统环境的不同,导至实验的失败】[[email protected] ~]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 6.2 (Santiago)[[email protected] ~]# [[email protected] ~]# uname -aLinux bbs.wyf.cn 2.6.32-220.el6.x86_64 #1 SMP Wed Nov 9 08:03:13 EST 2011 x86_64 x86_64 x86_64 GNU/Linux[[email protected] ~]# [[email protected] ~]# uname -r2.6.32-220.el6.x86_64[[email protected] ~]# [[email protected] ~]# uname -mx86_64[[email protected] ~]# 2、检测是否符合PPTP的搭建环境的要求:[[email protected] ~]# [[email protected] ~]# modprobe ppp-compress-18 && echo okok[[email protected] ~]# cat /dev/net/tuncat: /dev/net/tun: File descriptor in bad state通过上述检查后,则表示通过,可以安装pptp ,否则就只能考虑openvpn 了。
3.安装ppp PPTPD要求Linux内核支持mppe,一般来说CentOS安装时已经包含了。
CentOS默认安装了iptables和ppp,我们要先查看已经安装的ppp的版本,再去找对应的pptpd版本。
ppp版本查看命令如下:[[email protected] ~]# [[email protected] ~]# rpm -qa pppppp-2.4.5-5.el6.x86_64[[email protected] ~]# ppp和pptpd各个版本下载地址:http://poptop.sourceforge.net/yum/stable/packages/。
在这里一定要下载ppp对应的pptpd版本,不然会出错。
我所需要下载的版本为pptpd-1.4.0-1.el6.x86_64.rpm,下载及安装命令如下:[[email protected] vpn]# 下载 wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.x86_64.rpm–2018-04-1016:53:20– http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.x86_64.rpmResolving poptop.sourceforge.net… 216.105.38.10Connecting to poptop.sourceforge.net|216.105.38.10|:80… connected.HTTP request sent, awaiting response… 200 OKLength: 76180 (74K) [application/x-rpm]Saving to: `pptpd-1.4.0-1.el6.x86_64.rpm’100%[========================>] 76,180 168K/s in 0.4s 2018-04-10 16:53:21 (168 KB/s) – `pptpd-1.4.0-1.el6.x86_64.rpm’ saved [76180/76180][[email protected] vpn]# [[email protected] vpn]# lltotal 76-rw-r–r– 1 root root 76180 Oct 26 2013 pptpd-1.4.0-1.el6.x86_64.rpm[[email protected] vpn]# 开始安装[[email protected] vpn]# [[email protected] vpn]# rpm -ivh pptpd-1.4.0-1.el6.x86_64.rpmwarning: pptpd-1.4.0-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 862acc42: NOKEYPreparing… ########################################### [100%] 1:pptpd ########################################### [100%][[email protected] vpn]#修改配置文件1)配置文件/etc/ppp/options.pptpd[[email protected] ppp]# cp /etc/ppp/options.pptpd /etc/ppp/options.pptpd.bak[[email protected] ppp]# vim /etc/ppp/options.pptpd将下面的内容添加到option.pptpd 文件中:ms-dns 211.***.***.3ms-dns 114.114.114.114然后保存退出。
:wq!2)配置文件/etc/ppp/chap-secrets[[email protected] ppp]# [[email protected] ppp]# cp /etc/ppp/chap-secrets /etc/ppp/chap-secrets.bakç 对chap-secrets文件进行备份。
修改配置文件chap-secrets[[email protected] ppp]# vim chap-secrets# Secrets for authentication using CHAP# client server secret IP addresseschengwei pptpd chewei123 *ggg pptpd ggg123 *client处是VPN账号,server处是pptpd,secret处是VPN的密码,IP address处填上*(星号表示对任意IP,记住不要丢了这个星号。
)3)配置文件/etc/pptpd.conf,命令如下所示:[[email protected] etc]# cp /etc/pptpd.conf /etc/pptpd.conf.bak[[email protected] etc]# [[email protected] etc]# vim /etc/pptpd.conflocalip 192.168.10.21remoteip 192.168.10.220-240 ç 表示vpn 客户端获得ip 地址范围。
pptpd.conf这个配置文件必须保证最后是以空行结尾才行,否则会导致启动pptpd服务时,出现“Starting pptpd:”,一直卡着不动的问题,无法启动服务,切记呀!4)配置文件/etc/sysctl.conf [[email protected] etc]# vim /etc/sysctl.conf将net.ipv4.ip_forward = 0 改成 net.ipv4.ip_forward = 1。
保存修改的文件,然后执行如下命令:[[email protected] etc]# /sbin/sysctl -pnet.ipv4.ip_forward = 1net.ipv4.conf.default.rp_filter = 1net.ipv4.conf.default.accept_source_route = 0kernel.sysrq = 0kernel.core_uses_pid = 1net.ipv4.tcp_syncookies = 1error: “net.bridge.bridge-nf-call-ip6tables” is an unknown key ç 报错error: “net.bridge.bridge-nf-call-iptables” is an unknown key error: “net.bridge.bridge-nf-call-arptables” is an unknown keykernel.msgmnb = 65536kernel.msgmax = 65536kernel.shmmax = 68719476736kernel.shmall = 4294967296sysctl -P 报错解决办法[[email protected] etc]# [[email protected] etc]# modprobe bridge[[email protected] etc]# lsmod|grep bridge bridge 79790 0 stp 2173 1 bridgellc 5642 2 bridge,stp[[email protected] etc]#启动pptp vpn 服务[[email protected] etc]# /etc/init.d/pptpd start 或者 service pptpd start经过前面步骤,我们的VPN已经可以拨号登录了,但是还不能访问任何网页。
最后一步就是添加iptables转发规则了。
我的规则如下:[[email protected] ~]# /sbin/iptables -t nat -A POSTROUTING -s 192.168.10.0/24 -p tcp –dport 1723 -j SNAT –to-source 111.***.***.224
[[email protected] ~]# iptables -t nat -A POSTROUTING -o eth0 -s 192.168.10.0/24 -j SNAT –to-source 111.***.***.224 (填写自己的VPS网卡IP)ç 【本条忽略,可以使用上面那一调规则】192.168.10.0/24 为vpn 服务器的ip 网段, 111.***.***.130 为外网ip
[[email protected] ~]# iptables -I INPUT 1 -p gre -j ACCEPT
[[email protected] ~]# iptables -I INPUT 1 -p tcp -m tcp –dport 1723 -j ACCEPT
[[email protected] ~]#iptables -A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT (一般不执行,防火墙默认设置)
[[email protected] ~]# iptables -A FORWARD -s 192.168.10.0/24 -o eth0 -j ACCEPT
[[email protected] ~]# iptables -A FORWARD -d 192.168.10.0/24 -i eth0 -j ACCEPT
注意上面规则添加中的eth0这个是网卡,不同的电脑是不相同的,可以使用命令ifconfig查看得到。
规则添加完毕之后,先保存一下添加的规则,然后再启动iptables了。
命令如下:/etc/init.d/iptables save
service iptables start
最后,我们可以设置pptpd和iptables随系统自启动。
命令如下图所示:
chkconfig pptpd on
chkconfig iptables on
到此为止,PPTP VPN就配置完成了注意:在内网网关做下端口映射,将内网pptp的1723端口映射到公网ip上,这样我们就可以通过远程连接pptp来建立vpn了。
客户端配置将在下一篇中介绍。

未经允许不得转载:选主机测评网 » linux「Red Hat 6.2/centos」下PPTP VPN的搭建过程