一、圖形化管理火牆
系統提供了圖像化的配置工具 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
測試: