1. 程式人生 > >三十三、iptables規則備份和恢復、firewalld的9個zone、關於zone的操作、

三十三、iptables規則備份和恢復、firewalld的9個zone、關於zone的操作、

iptables規則備份和恢復 firewalld的9個zone 關於zone的操作 關於service的操作

三十三、iptables規則備份和恢復、firewalld的9個zone、firewalld關於zone的操作、firewalld關於service的操作

一、iptables規則備份和恢復

# /service iptables save會把規則保存到/etc/sysconfig/iptables(開機就加載的規則)

# iptables-save > /tmp/ipt.txt自定義保存一個位置

# iptables-restore < /tmp/ipt.txt恢復剛才的備份

當需要清除防火墻的所有規則,iptables -F固然可以,但最好的辦法是停止防火墻服務,如下所示:

# service iptables stop

這樣防火墻便失效,重新設定規則,防火墻服務自動開啟。

二、firewalld的9個zone

先把iptables禁掉,開啟firewalld。

# systemctl disable iptables

# systemctl stop iptables

# systemctl enable firewalld

# systemctl start firewalld

firewalld默認有9個zone,zone是firewalld的一個單位,默認使用public。每個zone好比是一個規則集,zone裏自帶一些規則。

# firewall-cmd --get-zones 查看所有的zone

# firewall-cmd --get-default-zone 查看系統默認的zone

public

技術分享圖片技術分享圖片

三、firewalld關於zone的操作

# firewall-cmd --set-default-zone=work //設定默認zone為work

# firewall-cmd --get-zone-of-interface=ens33 //查看指定網卡所在的zone

public

# firewall-cmd --zone=public --add-interface=lo //給指定網卡設置zone

success

# firewall-cmd --zone=dmz --change-interface=lo //針對網卡更改zone

success

# firewall-cmd --zone=dmz --remove-interface=lo //針對網卡刪除zone

success

# firewall-cmd --get-active-zones //查看系統所有網卡所在的zone

public

interfaces: ens33 ens37

若查看ens37的zone時,顯示no zone。就需要復制一下ens33的配置文件,然後更改一下ens37的相關內容,再重啟一下網絡服務,再重新加載一下firewalld服務;也可以直接指定設置zone

# systemctl restart firewalld

四、firewalld關於service的操作

# firewalld-cmd --get-service //列出當前系統所有的service

service都是由一個個配置文件定義,配置文件的模板/usr/lib/firewalld/services/目錄下,真正生效的配置文件在/etc/firewalld/services/目錄下(默認為空)。

# firewall-cmd --list-services //查看當前zone下有哪些service

每個zone下有不同的service

# firewall-cmd --zone=public --list-services //查看指定zone下有哪些service

ssh dhcpv6-client

一個zone下有某個service,意味著這個service是被信任的。比如,當前zone下面有ssh,那麽ssh服務(就是22)端口是放行的。可以給zone下添加一個service,示例:

# firewall-cmd --zone=public --add-service=http //把http增加到public zone下。

# firewall-cmd --zone=public --list-services

ssh dhcpv6-client http

zone的配置文件:/usr/lib/firewalld/zones/

之前的操作僅在內存中生效,若想修改配置文件,就要加此選項:

# firewall-cmd --zone=public --add-service=http --permanent

更改了某個zone的配置文件以後,會在/etc/firewalld/services/下生成對應zone的配置文件(.xml後綴文件),這才是真正生效的文件。

service的模板配置文件:/usr/lib/firewalld/services/

真正生效的配置文件:/etc/firewalld/services/

# cp /usr/lib/firewalld/services/ftp.xml /etc/firewalld/services/ 把模板拷貝一份到真正的路徑

# vi /etc/firewalld/services/ftp.xml 把裏面的21改為1121

<?xml version="1.0" encoding="utf-8"?>

<service>

<short>FTP</short>

<description>FTP is a protocol used for remote file transfer. If you plan to make your FTP server publicly available, enable this op

tion. You need the vsftpd package installed for this option to be useful.</description>

<port protocol="tcp" port="1121"/>

<module name="nf_conntrack_ftp"/>

</service>

# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/ 拷貝模板

# vi /etc/firewalld/zones/work.xml 在裏面加一行FTP的配置

<?xml version="1.0" encoding="utf-8"?>

<zone>

<short>Work</short>

<description>For use in work areas. You mostly trust the other computers on networks to not harm your computer. Only selected incomi

ng connections are accepted.</description>

<service name="ssh"/>

<service name="ftp"/>

<service name="dhcpv6-client"/>

</zone>

# firewall-cmd --reload 重新加載

success

# firewall-cmd --zone=work --list-services 查看work zone裏的service是否有FTP

ssh ftp dhcpv6-client


三十三、iptables規則備份和恢復、firewalld的9個zone、關於zone的操作、