实验环境:

操作系统:centos6.5

ip:192.168.0.2

一、检查机器是否支持pptp

如果检查结果没有这些支持的话,是不能安装pptp的。执行指令:

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

yum install -y ppp iptables

三、安装pptp

有两种方法,第一种是rpm包安装,第二种yum装

1,RPM包安装

wget http://acelnmp.googlecode.com/files/pptpd-1.3.4-1.rhel5.1.x86_64.rpm


目前这个安装包已经失效了,需要自己上网上找到下载源

rpm -ivh pptpd-1.3.4-1.rhel5.1.x86_64.rpm

可能存在依赖关系,缺什么包用yum的方式安装即可

2,yum安装

yum install epel-release
yum install pptpd

四 配置pptp

vim /etc/pptpd.conf
option /etc/ppp/options.pptpd
logwtmp
localip 192.168.0.2
remoteip 192.168.1.100-250

localip表示服务器的IP,remoteip表示分配给客户端的IP地址,可以设置为区间。这里我们使用pptp默认的配置,localip和remoteip通常不使用同一网段ip

vim /etc/ppp/options.pptpd
name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
proxyarp
lock
nobsdcomp
novj
novjccomp
nologfd
ms-dns 202.106.0.20
ms-dns 8.8.8.8

设置pptp账号密码

vi /etc/ppp/chap-secrets

按照“用户名 pptpd 密码 *”的形式编写,一行一个账号和密码

test123 pptpd 123456 *

也可以通过命令添加命令账号密码

***user add test123 123456

五,修改内核参数

vim /etc/sysctl.conf

将“net.ipv4.ip_forward”改为1,变成下面的形式:

net.ipv4.ip_forward=1

保存退出,并执行下面的命令来生效它:

sysctl -p

六 添加防火墙规则

vim /etc/sysconfig/iptabes

修改为如下内容

*filter
:INPUT ACCEPT [464:40231]
:FORWARD ACCEPT [246:14842]
:OUTPUT ACCEPT [306:27536]
-P INPUT DROP
-P OUTPUT DROP
-A INPUT -m state --state INVALID -j DROP
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp --dport 1723 -m state --state NEW -j ACCEPT
-A INPUT -p udp --dport 1723 -m state --state NEW -j ACCEPT
-A INPUT -i eth0 -p tcp  --dport 9876 --syn -m state --state NEW -j ACCEPT
-A INPUT -i eth0 -p icmp --icmp-type echo-request -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A OUTPUT -m state --state INVALID -j DROP
-A OUTPUT -p tcp --dport 53 -m state --state NEW -j ACCEPT
-A OUTPUT -p udp --dport 53 -m state --state NEW -j ACCEPT
-A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -o eth0 -p tcp --dport 9876 --syn -m state --state NEW -j ACCEPT
COMMIT
# Completed on Fri Jan  3 14:15:57 2014
# Generated by iptables-save v1.4.7 on Fri Jan  3 14:15:57 2014
*nat
:PREROUTING ACCEPT [9:531]
:POSTROUTING ACCEPT [7:431]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 192.168.235.0/23 -o eth0 -j MASQUERADE
-A POSTROUTING -o eth0 -j MASQUERADE
COMMIT

保存防火墙规则

/etc/init.d/iptables save

重启防火墙

/etc/init.d/iptables restart

七 重启pptp服务,设置开机自启动

/etc/init.d/ipttables restart
chkconfig pptpd on

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.

上面这句话的意思是说:×××服务在重启时,不能终止已存在的×××连接,所以可能会造成重启×××服务后,分配相同的IP地址给后来连接的×××客户机。为了解决以上问题,在停止×××服务时,可以使用命令

service pptpd restart-kill

断开所有已存在的×××连接,然后使用命令

service pptpd start

重新启动×××服务。


pptp端口号1723


***搭建已经完成

测试环境可以测试了

生产环境下,需要设置相应路由器和防火墙规则后即可。