5月10日
10.19 iptables規則備份和恢復
1. 儲存iptables規則
命令:service iptables save//會把規則儲存到/etc/sysconfig/iptables檔案中,如果沒有儲存,重啟後iptables規則會被清空。
2.備份iptables規則(如果不想備份到預設檔案中)備份到/tmp/ipt.txt檔案中
命令:iptables-save > /tmp/ipt.txt
3、恢復剛才備份的規則:
命令:iptables-restore < /tmp/ipt.txt
4.停用iptables防火牆,有時候我們需要清除防火牆的所有規則,使用命令iptables -F固然可以,但最好的辦法還是停止防火牆服務
命令:service iptables stop
注:這樣防火牆就失效了,但是一旦重新設定規則(哪怕只有一條),防火牆服務還是會自動開啟。
10.20 firewalld的9個zone
1.firewalld是CentOS7裡面的防火牆機器,在之前的操作中把firewalld服務給禁掉了,而是打開了iptables服務,現在再反過來關閉iptables服務,開啟firewalld服務,操作如下:
開啟firewalld
systemctl disable iptables
systemctl stop iptables
systemctl enable firewalld
systemctl start firewalld
開啟firewalld以後,你可以執行一個iptables -nvL命令檢視firewalld的預設規則,會發現這些規則要經netfilter的規則複雜。之前介紹的iptables相關命令在centos7也是可以繼續使用的,不過在centos7裡不用那麼操作,Centos7裡面有firewalld自己的命令。
1.1firewalld有兩個基礎概念,分別是zone和service,每一個zone裡面有不同的iptables規則,預設一共有9個zone,而Centos 7預設的zone為public,
檢視系統所有的zone,命令:firewall-cmd --get-zones (get前面是兩個
1.2 檢視預設zone:
命令:firewall-cmd –get-default-zone
1.39個zone的介紹如下:
10.21 firewalld關於zone的操作
firewall關於zone的操作
1、設定預設zone:
firewall-cmd –set-default-zone=work
2、 查指定網絡卡有沒有zone:
firewall-cmd –get-zone-of-interface=eth0
3、給指定網絡卡設定zone:
firewall-cmd –zone=public –add-interface=eth0
4、 針對網絡卡更改zone:
firewall-cmd –zone=block –change-interface=eno16777736
5、 針對網絡卡刪除zone:
firewall-cmd –zone=block –remove-interface=eno16777736
6、 檢視系統所有網絡卡所在的zone:
firewall-cmd –get-active-zones
10.22 firewalld關於service的操作
介紹另一個概念service,之所以有9種zone,是因為每個zone裡面都使用了不同的service,而service就是針對一個服務(埠)做的iptables規則。
1、檢視所有的servies:
firewall-cmd –get-services
這些service都是由一個個配置檔案定義的,配置檔案的模板在/usr/lib/firewalld/services/目錄下,真正生效的配置在/etc/firewalld/services目錄下面(預設為空)。
2、檢視當前zone下有哪些service:(每個zone裡面都有不同的service)
firewall-cmd –list-services
firewall-cmd --zone=public --list-service //檢視指定zone下有哪些service
3、一個zone下面有某個service,意味著這個service是被信任的,比如,當前zone下面有個ssh,那麼ssh服務(也就是22)埠是放行的,我們可以給一個zone新增一個service
把http增加到public zone下面:
firewall-cmd –zone=public –add-service=http //當前zone下新增http
firewall-cmd –zone=public –remove-service=http //當前zone下刪除http
僅在記憶體中生效,如果想要永久生效,需要更改配置檔案,以下
4、對於每個zone來說,都有自己的配置檔案,你可以檢視目錄/usr/lib/firewalld/zones/下面對應的檔案,這些就是zone的配置檔案:
ls /usr/lib/firewalld/zones/
5、前面已經試過一種方法可以在一個zone裡面增加一個service,但這種方法僅僅在記憶體中生效,並沒有修改配置檔案,如果想要修改配置檔案,需要增加一個選項
更改配置檔案,之後會在/etc/firewalld/zones目錄下面生成配置檔案(永久生效):
firewall-cmd –zone=public –add-service=http–permanent
ls /etc/firewalld/zones //檢視zone的配置檔案會生成public.xml public.xml.old
備註:一旦更改了某個zone的配置檔案,則會在/etc/firewalld/zones目錄下面生成對應zone的配置檔案(.xml字尾的檔案),其實這個目錄下面的配置檔案才是真正的配置檔案,上面所介紹的目錄,可以說是所有zone的模板配置檔案。
6.實驗舉例:
假設伺服器上配置了一個ftp服務,但埠並非預設的21,而是要自定義埠1121,並且需要在work zone下面放行ftp。
# cp /usr/lib/firewalld/services/ftp.xml/etc/firewalld/services //拷貝
# vi /etc/firewalld/services/ftp.xml //把21改為1121 (參考圖1)
# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/
# vi /etc/firewalld/zones/work.xml//增加一行(參考圖2)
<service name="ftp"/>
# firewall-cmd --reload //重新載入
success
# firewall-cmd --zone=work --list-services //驗證work zone裡面的services是否有ftp ssh dhcpv6-client ftp
圖一
圖二
轉載於:https://blog.51cto.com/404006045/2115055