1. 程式人生 > >5月10日

5月10日

linux

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.firewalldCentOS7裏面的防火墻機器,在之前的操作中把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有兩個基礎概念,分別是zoneservice,每一個zone裏面有不同的iptables規則,默認一共有9zone,而Centos 7默認的zonepublic

查看系統所有的zone,命令:firewall-cmd --get-zones (get前面是兩個

-)

技術分享圖片

1.2 查看默認zone:

命令:firewall-cmd –get-default-zone

技術分享圖片

1.3 9zone的介紹如下:

技術分享圖片

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,之所以有9zone,是因為每個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

技術分享圖片

圖一

技術分享圖片

圖二

技術分享圖片



5月10日