此文是對(duì)前面博文《 Linux網(wǎng)絡(luò)服務(wù)-LAMP之基于NFS+Fastcgi的LAMP搭建 》的延伸,在外網(wǎng)與內(nèi)網(wǎng)之間加了一臺(tái)Linux網(wǎng)關(guān)服務(wù)器;
實(shí)驗(yàn)需求:
1.DNS Server、Web Server的都是我內(nèi)網(wǎng)服務(wù)器,故他們都是使用內(nèi)網(wǎng)地址;
2.WAN Clients來訪問我的網(wǎng)站http://www.maoqiu.com時(shí)是通過Filrewall的外網(wǎng)地址進(jìn)行訪問,并且解析的域名為Firewall外網(wǎng)卡的地址;
3.LAN Clients能訪問內(nèi)網(wǎng)的Web Server,并且解析的域名為內(nèi)網(wǎng)Web Server的真實(shí)IP地址;
實(shí)驗(yàn)說明:
此次實(shí)驗(yàn)是通過上次實(shí)驗(yàn)做的一個(gè)延伸實(shí)驗(yàn),像后端這些服務(wù)器的搭建我就不再這里贅述,主要是Iptables的配置,
如果不清楚去看前面的博文,有疑問請(qǐng)留言。
實(shí)驗(yàn)步驟:
1.配置DNS服務(wù)
我們知道如果DNS如果要解析來自不同客戶端的IP地址,那么就需要用到智能DNS-View,所以下面開始配置DNS服務(wù)
(1)編輯dns服務(wù)的主配置文件:
[root@ns ~]# vim /etc/named.conf
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
allow-query { any; };
recursion yes;
rrset-order { class IN type A name "www.maoqiu.com" order cyclic; };
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
include "/etc/named.rfc1912.zones";
(2)編輯區(qū)域配置文件
[root@ns ~]# vim /etc/named.rfc1912.zones
acl LAN { #定義的ACL
172.16.0.0/16;
};
view LAN { #針對(duì)我內(nèi)網(wǎng)網(wǎng)段內(nèi)的用戶對(duì)應(yīng)的解析
match-clients { LAN; }; #凡是匹配到ACL中的條目都通過這個(gè)視圖中的區(qū)域數(shù)據(jù)文件進(jìn)行解析
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost.localdomain" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.empty";
allow-update { none; };
};
zone "maoqiu.com" IN {
type master;
file "maoqiu.com.zone.lan";
};
zone "41.16.172.in-addr.arpa" IN {
type master;
file "172.16.41.zone.lan";
};
};
view wan { #針對(duì)除了我內(nèi)網(wǎng)網(wǎng)段內(nèi)的用戶對(duì)應(yīng)的解析
match-clients { any; };
zone "maoqiu.com" IN {
type master;
file "maoqiu.com.zone.wan";
};
};
#注意,對(duì)于內(nèi)網(wǎng)區(qū)域數(shù)據(jù)文件一定要將其他區(qū)域數(shù)據(jù)文件包含在View中,根區(qū)域也不例外,對(duì)于外網(wǎng)客戶我這里只做一個(gè)區(qū)域文件即可
(3)創(chuàng)建正向和方向的區(qū)域數(shù)據(jù)文件:
[root@ns ~]# cd /var/named/
#編輯針對(duì)內(nèi)網(wǎng)服務(wù)器兩臺(tái)Web Server的正向區(qū)域數(shù)據(jù)文件
[root@ns named]# vim maoqiu.com.zone.lan
$TTL 6400
@ IN SOA ns.maoqiu.com. admin.maoqiu.com (
2014032701 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns
ns IN A 172.16.41.3
www IN A 172.16.41.1
www IN A 172.16.41.2
#編輯針對(duì)內(nèi)網(wǎng)服務(wù)器兩臺(tái)Web Server的反向區(qū)域數(shù)據(jù)文件
[root@ns named]# vim 172.16.41.zone.lan
$TTL 6400
@ IN SOA ns.maoqiu.com. admin.maoqiu.com (
2014032701 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns.maoqiu.com.
3 IN PTR ns.maoqiu.com.
1 IN PTR www.maoqiu.com.
2 IN PTR www.maoqiu.com.
#編輯針對(duì)WAN Clients來訪問時(shí)需要解析的區(qū)域數(shù)據(jù)文件
[root@ns named]# vim maoqiu.com.zone.wan
$TTL 6400
@ IN SOA ns.maoqiu.com. admin.maoqiu.com (
2014032701 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS ns
ns IN A 172.16.41.3
www IN A 10.10.10.1
(4)修改區(qū)域數(shù)據(jù)文件屬性
[root@ns named]# chmod 640 maoqiu.com.zone.* 172.16.41.zone.lan
[root@ns named]# chown root:named maoqiu.com.zone.* 172.16.41.zone.lan
(5)LAN Clients測(cè)試(注意:客戶端的DNS需要指定DNS Server)
OK!LAN Client測(cè)試完畢,我再去訪問一下web服務(wù)器
通過curl -I 獲取HTTP首頁信息。
現(xiàn)在LAN Client也能訪問網(wǎng)絡(luò)內(nèi)的Web Server了
2.配置Linux網(wǎng)關(guān)服務(wù)器,
由拓?fù)鋱D可見,作為L(zhǎng)inux網(wǎng)關(guān)服務(wù)器它需要兩張網(wǎng)卡,一張連接內(nèi)網(wǎng)、一張連接外網(wǎng)(網(wǎng)卡IP信息配置略)
我們需要在上面操作就是通過Iptables來發(fā)布我們內(nèi)網(wǎng)的Web服務(wù)和DNS服務(wù)
(1)發(fā)布Web服務(wù)
[root@FireWall ~]# iptables -t nat -A PREROUTING -d 10.10.10.1 -p tcp –dport 80 -j DNAT –to-destination 172.16.41.1
[root@FireWall ~]# iptables -t nat -A PREROUTING -d 10.10.10.1 -p tcp –dport 80 -j DNAT –to-destination 172.16.41.2
(2)發(fā)布DNS服務(wù)
[root@FireWall ~]#iptables -t nat -A PREROUTING -d 10.10.10.1 -p tcp –dport 53 -j DNAT –to-destination 172.16.41.3
[root@FireWall ~]#iptables -t nat -A PREROUTING -d 10.10.10.1 -p udp –dport 53 -j DNAT –to-destination 172.16.41.3
3.測(cè)試:
(1)外網(wǎng)測(cè)試DNS是否能夠解析到
OK!外網(wǎng)客戶端解析到的域名對(duì)應(yīng)的IP地址就是我Firewall上面外網(wǎng)卡的地址
(2)測(cè)試訪問web
OK!外網(wǎng)也可以訪問,實(shí)驗(yàn)完成!
總結(jié):
1.iptables的原理以及基本應(yīng)用請(qǐng)參考博文《Linux安全管理-Iptables原理及其應(yīng)用》
2.在本實(shí)驗(yàn)中主要重點(diǎn)就是DNS的解析配置以及Iptables的配置
3.實(shí)驗(yàn)過程中,由于兩臺(tái)Web Server和DNS Server沒有指定Linux網(wǎng)關(guān)即使服務(wù)器端收到了請(qǐng)求,但是在響應(yīng)時(shí)卻找不到回應(yīng)目標(biāo),故服務(wù)器的Gateway要指向Linux網(wǎng)關(guān)服務(wù)器內(nèi)網(wǎng)卡地址,Web Server的DNS要指向DNS Server!WAN Clients無需指定其網(wǎng)關(guān),但是DNS需要指定!