通常centos系統(即使是mini版)會默認會安裝iptables rpm包,這個rpm包括了iptables運行時的動態連接庫,以及建立規則的命令(iptables/iptables-save/iptables-restore)等等,那麼有此包以後即可以進行端口轉發NAT、過濾filter等規則,默認安裝之iptables rpm包後是沒有任何防火牆規則,即沒有任何防火牆規則限制,經過iptables作規則以後便可生效,而且經過iptables-save能夠將規則輸出終端進行查看,可是此種方法重啓後將失效,須要將規則命令寫入開機啓動/etc/rc.local重啓後依然生效,同時加入echo 1 > /proc/sys/net/ipv4/ip_forward ,注意: 須要執行chmod +x /etc/rc.d/rc.localcentos
若是要使用iptables作爲系統的一個服務使用,則同時須要安裝iptables和iptables-services的rpm包,iptables-services的rpm包包括iptables服務的運行文件,默認安裝這兩個包以後即可以使用iptables服務,systemctl start iptables或者service start iptables,服務啓動後默認會生成一些默認的防火牆配置,如默認規則爲INPUT鏈容許icmp和22端口的網絡協議包經過,其餘數據包均不能經過(iptables-services-1.4.2的默認規則,其餘版本可能有不同),能夠在/etc/sysconfig/iptables查看到iptables的配置,即可以經過服務去管理iptables的相應規則。
總結爲:只有iptables rpm包的時候也能作nat filter等策略,寫多少,生效多少,規則保存在內和緩衝區,重啓失效,寫入開機啓動則永久生效。有iptables及iptables-service rpm包的時候能夠啓動iptables服務,啓動服務後,會有默認配置(默認規則爲INPUT鏈容許icmp和22端口的網絡協議包經過,其餘數據包均不能經過)在此默認配置上再本身手動增長再保存,再重啓iptables服務來寫入內核,永久生效,經過服務區管理防火牆規則。markdown
iptables-save, service iptables save 做用同樣,只不過iptables-save須要手動指定路徑及文件名,若是不指定文件名,則結果輸出在終端,重啓以後失效,而service iptables save的文件爲/etc/sysconfig/iptables。默認iptables新建的規則保存在規則緩衝區中,用iptables -F 或iptables -X會清空規則緩衝區的內容;若是須要保存則service iptables save,重啓系統或systemctl restart iptables或service restart iptables則永久生效,不保存的話重啓iptables不影響,重啓機器失效,沒有裝iptables-services服務來管理的話須要將緩衝區的策略寫入開機啓動。網絡
iptables-restore, service iptables restore 做用同樣,只不過iptables-restore須要手動指定路徑及文件名,而service iptables restore的文件爲/etc/sysconfig/iptablesssh
iptables作端口轉發 訪問192.168.240.129的22022端口轉發至192.168.240.130的22端口,此種狀況下若是不能直接ssh 192.168.240.130,可是能夠訪問192.168.240.129,能夠經過129作跳板端口轉發去ssh192.168.240.130。
iptables -t nat -A PREROUTING -d 192.168.240.129 -p tcp -m tcp --dport 22022 -j DNAT --to-destination 192.168.240.130:22
// DNAT作端口映射,在192.168.240.129 prerouting鏈上全部發往192.168.240.129 22022的包都轉發至192.168.240.130:22
iptables -t nat -A POSTROUTING -d 192.168.240.130 -p tcp -m tcp --dport 22 -j SNAT --to-source 192.168.240.129
// SNAT作出口訪問轉發,在POSTROUTING鏈上未來自192.168.240.130:22的包所有從192.168.240.129網卡的POSTROUTING轉發出去 tcp