前言:通過上一章的學習,我們認識了Linux防火牆的表、鏈結構,並學會了編寫簡單的防火牆規則,
Linux防火牆在很多時候承擔着連接企業內、外網的重任,除了提供數據包過濾功能以外,還提供一些
基本的網關應用。
並使用NAT功能共享上網以及發佈服務器,和以前學過的nat原理完全一樣,本章學習SNAT和DNAT策略,
分別掌握兩個典型的應用:局域網共享一個公網IP地址接入inter;向inter發佈位於內網的應用服務器。
一、SNAT策略
SNAT和路由器上的PAT是一樣的,源地址轉換,其作用是根據指定條件修改數據包的源IP地址。
共享固定IP地址上網
1、實驗環境:
在虛擬機上做實驗簡化爲下圖:
2、在網站服務器上搭建網站
網站http服務已搭好,詳情請參考http://blog.51cto.com/13557682/2056366
網站服務器如圖:
internet測試機上搭建同樣的網站如圖:
3、在網關服務器上添加兩塊網卡,分別是eth0:192.168.1.1和eth1:173.16.16.1,然後開啓路由轉發功能:
[root@localhost ~]# vim /etc/sysctl.conf # Kernel sysctl configuration file for Red Hat Linux # # For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and # sysctl.conf(5) for more details. # Controls IP packet forwarding net.ipv4.ip_forward = 1 //將0修改爲1,啓動路由轉發功能 [root@localhost ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
5、在網關服務器上配置SNAT策略
[root@localhost ~]# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth1 -j SNAT --to-source 173.16.16.1
6、在內部網站服務器上訪問http://173.16.16.16即可
二、DNAT策略
DNAT策略與我們之前學習過的靜態nat是一樣的,可以一對一,也可以端口映射,主要目的是爲了發佈服務器。
[root@localhost ~]# iptables -t nat -I PREROUTING -i eth1 -d 173.16.16.1 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.7
3、在internet測試機上訪問:http://173.16.16.1,打開的網站是192.168.1.7
四、規則的導入、導出
前言:備份可以把配置過的防火牆規則存儲到一個位置,當更換防火牆或者規則出錯的情況下,可以迅速恢復。
1、執行iptables-save命令導出linux防火牆規則。
例如:
1)在網站服務器上查看防火牆規則
[root@localhost ~]# iptables -nL Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT) target prot opt source destination REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT) target prot opt source destination
2)執行備份防火牆
[root@localhost ~]# iptables-save > /opt/iprules_all.txt
3)把網站服務器上的規則全部刪除
[root@localhost ~]# iptables -F
4)執行iptables-resore命令恢復
[root@localhost ~]# iptables-restore < /opt/iprules_all.txt
五、使用防火牆腳本
使用腳本可以快速部署防火牆規則,當需要配置多臺防火牆的時候,使用腳本可以快速生成規則,提高工作效率。
例如:將output鏈中的默認策略設置爲允許,不添加其他規則,將input鏈的默認策略設置爲拒絕,只放行對個別服務的訪問,以及響應本機訪問請求的數據包。
[root@localhost ~]# vim /opt/myipfw.hostonly
2)執行腳本
3)查看規則
現在基本上用不着Linux做路由轉發,路由器做路由轉發比較專業