firewalld的基本規則

一、圖形化管理火牆

系統提供了圖像化的配置工具 firewall-config 、 system-config-firewall, 提供命令行客戶端 firewall-cmd, 用於配置 firewalld 永久性或非永久性運行時間的改變。

1、下載圖形管理命令

yum install firewall-config

2、使用命令調出圖形

firewall-config

3、在圖形處進行選擇,另一方進行監控firewalld的變化

watch -n 1 'firewall-cmd --list-all'

圖形化的界面

若爲runtime模式僅選中即可,不用重啓火牆,但若選擇permanent,要重啓火牆才能使策略生效。

二、firewalld的配置存儲

/etc/firewalld

進行所有的命令,均是改變此中文件/etc/firewalld/zones中的文件的內容,也可在文件中直接改動,改完後需要進行重啓服務。


/usr/lib/firewalld中的各種xml文件中

三、firewalld的基本使用命令

啓用命令

systemctl start firewalld              ##開啓防火牆

systemctl enable firewalld          ##開機自動開啓防火牆

systemctl stop firewalld              ##關閉防火牆

systemctl disable firewalld         ##開機不自動開啓防火牆

配置火牆命令

firewall-cmd --state                     ##火牆狀態,開啓或者停止

firewall-cmd --get-active-zones   ##正在活躍的火牆域

firewall-cmd --get-default-zone     ##火牆中默認的域

firewall-cmd --get-zones              ##火牆中所有存在的域

firewall-cmd --zone=public --list-all   ##查看public域中的所有信息

firewall-cmd --get-services             ##火牆中所有可以提供的服務

此中所有列出的服務的名字均可以進行自行改變,在/usr/lib/firewalld/service中有所有的服務列表,將其中的名字進行改變,但仍然以xml進行結尾,即可進行改變名字,但通常不這麼做。


firewall-cmd --list-all-zones        ##列出火牆中的所有域及所有信息

firewall-cmd --set-default-zone=dmz       ##將dmz域設置爲默認的域

[root@localhost zones]# firewall-cmd --add-service=http                           ##給默認域中添加服務http
[root@localhost zones]# firewall-cmd --remove-service=http                     ##刪除默認域中的服務http

測試:


[root@localhost zones]# firewall-cmd --add-port=8080/tcp                     ##給默認域中添加tcp端口8080
[root@localhost zones]# firewall-cmd --remove-port=8080/tcp               ##刪除默認域中的8080端口

測試:將httpd服務的端口改爲8080,並在火牆中加入該端口


此時,火牆的默認域爲public,且沒有添加http服務

[root@localhost zones]# firewall-cmd --add-source=172.25.254.73 --zone=trusted

[root@localhost zones]# firewall-cmd --remove-source=172.25.254.73 --zone=trusted
##此ip在訪問時可以進行火牆中的額任何服務,走的是trusted這個域



測試:

此時server虛擬機有兩塊網卡,可以進行設置,將eth0走public域,eth1走bmz域

此間有一個問題,必須將兩塊網卡的ip設置爲在不同的網段內,經過實驗,若將兩塊網卡放在同一個網段內的話,會出現兩塊網卡都走的是默認的域,沒有實驗效果。


[root@localhost zones]# firewall-cmd --change-interface=eth1 --zone=dmz

測試:

172.25.71.1    走的是dmz域

172.25.254.173  走的是public域,我在其中加入了http服務


通過 firewall-cmd 工具 , 可以使用 --direct 選項在運行時間裏增加或者移除鏈。

[root@localhost zones]# firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.73 -p tcp --dport 80 -j REJECT

表示在filter表中第一行加入 http服務(80端口)對於172.25.254.73不開放


測試:

語句成功後:


##使用--direct 語句使得172.25.254.73主機不能實現ftp服務的連接

[root@localhost zones]# firewall-cmd --direct --add-rule ipv4 filter INPUT 1 ! -s 172.25.254.73 -p tcp --dport 21 -j REJECT

測試:

172.25.254.73主機:

別的主機:

地址僞裝:

將172.25.71.2主機使用sshd訪問172.25.254.73主機時訪問的是173主機

思想:

1、需要一個雙網卡的主機充當路由器,此路由器必須與172.25.71.2和172.25.254.73可以進行通信

2、172.25.71.2主機將可以與他進行通信的路由器的端口設置成網關

路由器:

[root@localhost zones]# firewall-cmd --add-masquerade
[root@localhost zones]# firewall-cmd --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.173

測試:






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章