在打包PPP帧的过程中,将对PPP数据包进行加密,为了取得最大的安全性,我们这里将使用MPPE加密和MSCHAPv2身份验证方法。下面我们来看看具体配置过程。
实验模拟:
A:eth1 192.168.0.3 #内网
eth2 202.105.182.1 #外网IP
eth2:0 192.168.1.3 #内网
eth2:1 192.168.2.3 #内网
eth2:2 192.168.100.3 #控制卡网段
rpm -ivh pptpd-1.3.4-1.rhel5.1.i386.rpm #注意操作系统是多少位
vim /etc/pptpd.conf
localip 172.16.0.1 #分配给*** server的地址
remoteip 172.16.0.10-100 #分配给*** client的地址范围
vim /etc/ppp/options.pptpd #分配给*** client的dns解析地址
ms-dns 8.8.4.4
ms-dns 8.8.8.8
vim /etc/ppp/chap-secrets #clinet account
"zhongxuan" * "zhongxuan" *
cat /etc/sysconfig/iptables
# Generated by iptables-save v1.3.5 on Mon Sep 10 17:49:07 2012
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -d 192.168.0.0/255.255.255.0 -j SNAT --to-source 192.168.0.3
-A POSTROUTING -d 192.168.100.0/255.255.255.0 -j SNAT --to-source 192.168.100.3
-A POSTROUTING -d 192.168.1.0/24 -j SNAT --to-source 192.168.1.3
-A POSTROUTING -d 192.168.2.0/24 -j SNAT --to-source 192.168.2.3
-A POSTROUTING -s 172.16.0.0/16 -j SNAT --to-source 202.105.182.1
-A POSTROUTING -d 202.105.182.0/26 -j SNAT --to-source 202.105.182.1
COMMIT
# Completed on Mon Sep 10 17:49:07 2012
# Generated by iptables-save v1.3.5 on Mon Sep 10 17:49:07 2012
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [249:30024]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
-A INPUT -p gre -j ACCEPT
-A INPUT -p tcp -m tcp --dport 47 -j ACCEPT
-A INPUT -s 192.168.0.0/255.255.0.0 -j ACCEPT #内网汇总
-A INPUT -s 172.16.0.0/255.255.0.0 -j ACCEPT
-A INPUT -s 119.253.59.0/255.255.255.192 -j ACCEPT #内网出外网的接口
#-A INPUT -s 219.239.89.0/255.255.255.128 -j ACCEPT
-A INPUT -s 202.105.182.0/255.255.255.192 -j ACCEPT
#-A INPUT -s 113.106.105.88/255.255.255.248 -j ACCEPT
#-A INPUT -p tcp -m tcp --dport 80 -m connlimit --connlimit-above 30 --connlimit-mask 32 -j DROP
#-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
#-A INPUT -p icmp -m icmp --icmp-type 8 -m limit --limit 30/sec --limit-burst 10 -j ACCEPT
-A INPUT -m state --state INVALID -j DROP
-A INPUT -j DROP
COMMIT
# Completed on Mon Sep 10 17:49:07 2012
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p
service pptpd start
chkconfig pptpd on
问题:
1. 如果*** 服务器开启了iptables防火墙,需要开放哪些端口和服务?
向/etc/sysconfig/iptables中加入:
-A INPUT -p tcp -m tcp --dport 1723 -j ACCEPT
-A INPUT -p gre -j ACCEPT
-A INPUT -p tcp --dport 47 -j ACCEPT
再运行 service iptables restart重新加载防火墙规则即可。
2. ×××连接正常,但无法通过*** server连接internet ?
这是因为*** server上没有相关路由规则,导致客户端只能连接*** server所在内网,而无法连接internet,需要在*** server作相应NAT转换。
假设***分配给客户端的IP段是172.16.0.0/16, ×××服务器有三个IP, 一个公网和两个内网,分别为202.100.20.10, 192.168.1.68, 192.168.2.57
在/etc/sysconfig/iptables最前面加入:
*nat
:PREROUTING ACCEPT
:POSTROUTING ACCEPT
:OUTPUT ACCEPT
-A POSTROUTING -d 192.168.1.0/255.255.255.0 -j SNAT --to 192.168.1.68
-A POSTROUTING -d 192.168.2.0/255.255.255.0 -j SNAT --to 192.168.2.57
-A POSTROUTING -s 172.16.0.0/255.255.0.0 -j SNAT --to 202.100.20.10
COMMIT
试想,如果没有最后一条NAT转换规则,当数据包以源IP 172.16.0.X到达***服务器后,***服务器再将它转换给连接Internet的网关(数据包来源并未变化),显然172.16.0.X属于保留的IP,无法在Internet上直接转发使用,这也就解释了必须在×××服务器上配置SNAT,才能让客户端上网。
经过上述NAT规则设置,无论上网,还是连接与×××同一局域网的其它机器,目标机器所收到的来源IP均为***服务器的真实IP。
再重启防火墙 service iptable restart 即可。最后一条规则, 是确保可以通过×××连接internet的关键。但这样一来,客户端所有的网络通信均会经过*** server。
×××服务器的典型应用:
以安全的方式管理大量服务器。可在公网上部署×××服务器,同时配置被管理服务器的防火墙仅允许来自×××服务器的SSH/RDP连接。在这个环境中,×××服务器充当跳板角色。这样,也就不必担心服务器登录账号泄露造成的安全隐患。
对服务器管理人员较多的场景,只要控制好×××账号,即可很大程度上提高安全性。