一、實驗方案
二、內網DNS服務的搭建
1. 登錄172.16.20.22爲內網主機dns.magelinux.com安裝bind
[root@dns ~]# yum -y install bind
2. 編輯配置文件,添加magelinux.com區域。實現將來自202.102.224.0/24網段的用戶解析到202.102.224.11.將來自172.16.20.0/24網段的用戶解析爲172.16.20.33
[root@dns ~]# vim /etc/named.rfc1912.zones view "in" { match-clients { 172.16.20.0/16; }; zone "magelinux.com." IN { type master; file "magelinux.com.zone"; }; }; view "out" { match-clients { 202.102.224.0/24; }; zone "magelinux.com." IN { type master; file "magelinux.com.zoneout"; }; };
3. 編輯區域文件
[root@dns ~]# vim /var/named/magelinux.com.zone 1 $TTL 86400 2 @ IN SOA dns.magelinux.com xuqimin.magelinux.com ( 3 2014032801 4 1D 5 5M 6 7D 7 2M) 8 IN NS dns 9 dns IN A 172.16.20.22 10 www IN A 172.16.20.33 [root@dns ~]# vim /var/named/magelinux.com.zoneout 1 $TTL 86400 2 @ IN SOA dns.magelinux.com xuqimin.magelinux.com ( 3 2014032801 4 1D 5 5M 6 7D 7 2M) 8 IN NS dns 9 dns IN A 202.102.224.11 10 www IN A 202.102.224.11
4. 講網關指向172.16.20.11在內外網測試
[root@stu20 ~]# dig -t A www.magelinux.com @172.16.20.2
測試通過,能成功解析
三、內網Web服務搭建
1. 登錄172.16.20.33安裝httpd
[root@web ~]# yum install httpd
2. 配置主頁
[root@web ~]# vim /var/www/html/index.html
3. 啓動web服務
[root@web ~]# service httpd start Starting httpd:
4. OK,設置網關指向內網網關(172.16.20.11)現在我們的網站可以在內網(172.16.20.0/16)訪問了。
四、外網用戶的設置
1. 添加一臺虛擬機,網卡使用VMnet2,連接到防火牆同樣類型的VMnet2類型網卡
2. 配置外網的ip 爲202.102.224.22,並將其網關和dns服務器設置爲防火牆連接外網的ip(202.102.224.11).
3. 此時ping網關是可以痛的。應爲它跟防火牆外網工作在同一個網絡。另外,如果你試了ping防火牆的內網網卡(172.16.20.11)其實也是可以ping通的,因爲linux 的ip是在內核層的(注意,此時我的防火牆還沒開通轉發功能的)。
五、中間防火牆的配置
1. OK,終於等到了這個時刻,一切準備就緒,我們來配置防火牆吧。
2. 開啓防火牆轉發功能。
[root@fire ~]# vim /etc/sysctl.conf net.ipv4.ip_forward = 1 ... [root@fire ~]# sysctl -p net.ipv4.ip_forward = 1 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 ......
3. 立杆見影,防火牆轉發功能開啓之後,外網立刻可以ping通我們的內外web服務器了。當然了,此時web服務器就可以給外網提供服務了。不過這種方式可不安全,我們還得繼續添加安全防火規則呢。
4. 指定FORWARD鏈上的默認策略爲DROP,及使用通的機制,只放行允許的web服務和DNS服務的iptables規則
[root@fire ~]# iptables -P FORWARD DROP [root@fire ~]# iptables -A FORWARD -m multiport -p tcp --ports 53,80 -j ACCEPT [root@fire ~]# iptables -A FORWARD -p udp --dport 53 -j ACCEPT [root@fire ~]# iptables -A FORWARD -p udp --sport 53 -j ACCEPT
5. 用elinks在外網測試內部web是否可以訪問
#elinks 172.16.20.33
6. 通過ip地址可以訪問我們的內網web服務器了,接下來配置防火牆的NAT功能,使其能夠使用我們的內網DNS服務器解析,www.magelinux.com。
7. DNAT功能需要實現的是,讓來自外網202.102.224.0/24的ip在通過網關202.102.224.11訪問內網dns服務器的時候,將目標地址從202.102.224.11解析爲172.16.20.22(DNS服務器)(記得設置外網dns指向防火牆外網網關(202.102.224.11)
[root@fire ~]# iptables -t nat -A PREROUTING -d 202.102.224.11 -p tcp --dport 53 -j DNAT --to-destination 172.16.20.22
8. 將來自外網202.102.224.0/24的主機訪問202.102.224.11:80端口時候,將目標地址從202.102.224.11:80解析爲172.16.20.33(WEB服務器).
[root@fire ~]# iptables -t nat -A PREROUTING -d 202.102.224.11 -p tcp --dport 80 -j DNAT --to-destination 172.16.20.33
9. Ok,轉發設置成功,成功實現外網訪問內部DNS和web。