一、拓扑图与简单说明
说明:
1.假设我们在申请了一个外网地址10.238.203.24/32,我们的内网服务器的地址为172.16.130.0/24网段;
2.我们要开放web和DNS供外网用户访问,其他的服务都禁止访问;
3.我们的域名为www.wangfeng7399.com,其中互联网用户解析到的为10.238.203.24,内网用户解析到的地址为192.168.1.200,或者是192.168.1.201,DNS为外网用户为10.238.203.24,内网用户使用的为192.168.1.201
二、搭建APACHE,PHP,MYSQL
关于搭建APACHE,PHP,MYSQL的详细步骤,请移步本人相关博客,博客地址为http://wangfeng7399.blog.51cto.com/3518031/1381688
三、基于rsync+inotify实现文件实时同步
由于需要基于inotify的机制实现文件实时同步,那么我们需要将前面的两台web作为客户端
1.配置web的rsync服务
①、由于rsync由超级守护进程,所有必须要先安装xinetd超级守护进程,本处通过yum的方式安装
[root@httpweb2 ~]# yum install -y xinetd
②、配置rsync的配置文件
#global settings #配置全局段 uid = nobody #运行程序的用户uid gid = nobody #运行程序的用户gid use chroot = no #是否将用户禁锢在家目录 max connections = 5 #最大的连接数 strict modes = yes #是否完全检查 pid file = /var/run/rsyncd.pid #程序的pid文件 log file = /var/log/rsyncd.log #程序的log日志文件 #directory to be synced #配置用户段 [webserver] #共享模块的名称 path = /www/html/wangfeng7399 #共享模块的位置 ignore errors = yes #是否忽略I/O错误 read only = no #是否允许用户只读 write only = no #是否允许用户只写 host allow = 192.168.1.0/24 #允许访问的ip地址 host deny = * #允许访问的ip地址 list = false #是否列出列表 uid = root #传递数据的用户 gid = root #传递数据的用户组 auth user = webuser #允许访问的用户 secrets file = /etc/rsync.passwd #用户密码的存放位置
③、生成用户的密码文件/etc/rsync.passwd
webuser:wangfeng7399
为了安全起见,请将/etc/rsync.passwd的权限设置成600
④、配置服务能够开机自动启动
[root@httpweb2 ~]# chkconfig rsync on [root@httpweb2 ~]# chkconfig xinetd on
⑤、将另外一台服务器也配置成如上所示
⑥、测试看是否能将数据上传到服务器上
我们可以看到在1.200上的共享目录中有了文件
2.搭建inotify服务器
①、可以配置epel源,进行yum安装,也可以在ftp://mirrors.yun-idc.com/epel/6/x86_64/inotify-tools-3.14-1.el6.x86_64.rpm下载使用
[root@php ~]# rpm -ivh inotify-tools-3.14-1.el6.x86_64.rpm
②写脚本实现对/www/html/wangfeng7399/文件夹进行监控,如文本修改,文件删除,新增等
#!/bin/bash src=/www/html/wangfeng7399/ inotifywait -mr -e create,delete,modify,attrib $src |while read files;do rsync -ar --delete $src webuser@192.168.1.200::webserver --password-file=/etc/user.passwd rsync -ar --delete $src webuser@192.168.1.109::webserver --password-file=/etc/user.passwd done ~
③、创建/etc/user.passwd文件
wangfeng7399
并将权限改为600
④、测试,本处不在给出测试结果
四、结合php和mysql做内网测试
五、做DNS解析
①、安装DNS,本处DNS使用的yum的安装方式
[root@httpweb2 named]# yum install bind -y
②、修改DNS的主配置文件
options { directory "/var/named"; rrset-order { order random; }; }; view inuser{ match-clients { 192.168.1.0/24; }; zone "." IN { type hint; file "named.ca"; }; zone "wangfeng7399.com." IN { type master; file "wangfeng7399.com.inuser"; }; }; view any{ match-clients { any; }; zone "." IN { type hint; file "named.ca"; }; zone "wangfeng7399.com." IN { type master; file "wangfeng7399.com.outuser"; }; };
③、修改区域文件。
wangfeng7399.com.inuser
$TTL 600 @ IN SOA dns.wangfeng7399.com. admin.wangfeng7399.com.( 2014032901 1H 5M 5D 1D ) @ IN NS dns dns IN A 192.168.1.109 www IN A 192.168.1.109 www IN A 192.168.1.200 ~
wangfeng7399.com.outuser
$TTL 600 @ IN SOA dns.wangfeng7399.com. admin.wangfeng7399.com.( 2014032901 1H 5M 5D 1D ) @ IN NS dns dns IN A 10.238.203.24 www IN A 10.238.203.24 ~ ~
④、内网测试
我们可以看到这两个的首解析记录不相同
基于域名访问
六、基于防火墙创建规则
①、为了服务器的安全,我们应该将所有的规则都设置为DROP
②、为了能让服务器做转发,我们应该开启forward功能,修改/etc/sysctl.conf
net.ipv4.ip_forward = 1
③、将内网的web服务器的80端口映射为10.238.203.24的80端口
[root@httpweb1 ~]# iptables -t nat -I PREROUTING -d 10.238.208.24 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.200:80
④、将DNS映射到互联网上
[root@httpweb1 ~]# iptables -t nat -I PREROUTING -d 10.238.208.24 -p udp --dport 53 -j DNAT --to-destination 192.168.1.220:53
终于搞定了,由于本人水平有限,请各位大神匹配指正!!!谢谢
本文出自 “IT民工--小枫” 博客,请务必保留此出处http://wangfeng7399.blog.51cto.com/3518031/1386342