CentOS 6.5下基于pptpd的×××服务器构建
大家可以看到我这里的网络拓扑结构
×××服务器配置:
操作系统:CentOS 6.5 64位
eth1(WAN):192.168.1.207
eth0(LAN):192.168.100.207
1.安裝ppp
yum -y install ppp perl
2.下载及安装pptpd
wget http://poptop.sourceforge.net/yum/stable/rhel6/x86_64/pptpd-1.4.0-1.el6.x86_64.rpm rpm -ivh pptpd-1.4.0-1.el6.x86_64.rpm
3.配置×××的DNS
vim /etc/ppp/options.pptpd #加入以下2行,主要是设置DNS ms-dns 114.114.114.114 ms-dns 8.8.4.4
4.配置ppp的客户端IP
vim /etc/pptpd.conf #加入以下2行,主要是本地IP,及远程×××客户端使用的IP,不建议使用内部网段 localip 172.16.0.1 remoteip 172.16.0.2-245
5.设置×××账户及密码
vim /etc/ppp/chap-secrets #增加以下1行,来源如果没限制的话就写*即可 # 账户 服务器 密码 来源 test pptpd test *
6.设置转发
vim /etc/sysctl.conf #将net.ipv4.ip_forward的值改成1 net.ipv4.ip_forward = 1 #使修改生效 sysctl -p
7.设置防火墙
iptables -F iptables -X iptables -P INPUT DROP iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 1723 -j ACCEPT #对DNS端口进行开放,否则无法使用域名上网 iptables -A INPUT -p tcp --dport 53 -j ACCEPT iptables -A INPUT -p udp --dport 53 -j ACCEPT #允许建立×××隧道,否则无法验证用户名及密码. iptables -A INPUT -p gre -j ACCEPT #对IP进行转发 iptables -t nat -A POSTROUTING -o eth0 -s 172.16.0.0/24 -j MASQUERADE iptables -t nat -A POSTROUTING -o eth1 -s 172.16.0.0/24 -j MASQUERADE service iptables save service iptables restart
8.使得开机生效
chkcconfig --level 345 pptpd on chkcconfig --level 345 iptables on
9.查看×××服务器的日志
pptpd的日志是存放在/var/log/message
tail -F /var/log/messages Mar 28 13:13:38 NFSServer pptpd[916]: CTRL: Client 192.168.100.103 control connection started Mar 28 13:13:38 NFSServer pptpd[916]: CTRL: Starting call (launching pppd, opening GRE) Mar 28 13:13:38 NFSServer pppd[917]: Plugin /usr/lib64/pptpd/pptpd-logwtmp.so loaded. Mar 28 13:13:38 NFSServer kernel: PPP generic driver version 2.4.2 Mar 28 13:13:38 NFSServer pppd[917]: pppd 2.4.5 started by root, uid 0 Mar 28 13:13:38 NFSServer pppd[917]: Using interface ppp0 Mar 28 13:13:38 NFSServer pppd[917]: Connect: ppp0 <--> /dev/pts/1 Mar 28 13:13:38 NFSServer pppd[917]: peer from calling number 192.168.100.103 authorized Mar 28 13:13:38 NFSServer kernel: PPP MPPE Compression module registered Mar 28 13:13:38 NFSServer pppd[917]: MPPE 128-bit stateless compression enabled Mar 28 13:13:40 NFSServer pppd[917]: Cannot determine ethernet address for proxy ARP Mar 28 13:13:40 NFSServer pppd[917]: local IP address 172.16.0.1 Mar 28 13:13:40 NFSServer pppd[917]: remote IP address 172.16.0.234
从以上可以看到,我在使用192.168.100.103登录×××,获取的IP是172.16.0.234
10.查看pptpd端口情况
netstat -ntlup |grep pptpd tcp 0 0 0.0.0.0:1723 0.0.0.0:* LISTEN 990/pptpd
可以看到使用的是TCP的1723端口,因此只需要在路由器上将该端口映射出去即可
11.如果有遇到部门网站无法打开的问题,有可能就是MTU的设置有问题了,造成链路上部分设备堵塞。可以使用如下几种方法修改
a.通过iptables修改MTU值
iptables -A FORWARD -p tcp --syn -s 172.16.0.0/24 -j TCPMSS --set-mss 1356
b.修改/etc/ppp/ip-up文件,
#在 /etc/ppp/ip-up 中,exit 0行前添加 ifconfig $1 mtu 1356
或者新建/etc/ppp/ip-up.local,文件内容如下
#!/bin/bash PATH=/sbin:/usr/sbin:/bin:/usr/bin export PATH ifconfig $1 mtu 1356
添加文件的运行权限
chmod +x /etc/ppp/ip-up.local
c.修改/etc/ppp/options.pptpd,在文件最后添加
mtu 1356
ps:具体的MTU需要自己去测试,
转载于:https://blog.51cto.com/fengwan/1385345