firewalld是linux系統中的默認防火牆,也被稱爲動態防火牆,firewalld自身並不具備防火牆的功能,而是和iptables一樣需要通過內核的netfilter來實現,也就是說firewalld和 iptables一樣,他們的作用都是用於維護規則,而真正使用規則幹活的是內核的netfilter,只不過firewalld和iptables的結構以及使用方法不一樣。
firewalld通過將網絡劃分成不同的區域,制定出不同區域之間的訪問控制策略來控制不同程序區域間的傳送和訪問功能,以下是firewalld劃分的區域:
firewalld的配置方法主要有三種:firewall-config、firewall-cmd和直接編輯xml文件,其中 firewall-config是圖形化工具,firewall-cmd是命令行工具。
下面簡單介紹一下firewalld-cmd命令的使用以及僞裝和轉發功能的實現:
基本的firewall-cmd命令:
1.firewall-cmd --state 可查看當前firewalld服務的狀態:
2.firewall-cmd --get-zones 可查看firewalld劃分的域:
3.firewall-cmd --get-default-zone 爲查看當前權限狀態
firewall-cmd --set-default-zone=trusted 爲修改當前權限狀態
4.firewall-cmd --list-all 查看當前firewalld允許的服務:
5.firewall-cmd --add-service=ftp 爲臨時添加ftp服務
重啓服務後,之前允許的ftp服務策略失效:
想要永久生效,要在命令行中加上 --permanent ,然後輸入firewall-cmd --reload重新加載即可
7.firewall-cmd --permanted --add-port=8080/tcp 添加tcp協議端口8080
然後將8080端口加入到http服務的配置文件當中:
systemctl restart httpd 然後重啓http服務,即可通過8080端口訪問http服務:
在firewalld服務中實現ip地址僞裝和網絡地址轉換和iptables中是一樣的,只是所用到的命令和操作不同:
1.首先,將一臺主機配置兩塊網卡並配置ip爲下圖所示:
然後將一個主機ip設置爲172.25.21.121,配置網關爲172.25.21.221
用來測試策略效果:
第三臺主機ip設置爲172.25.254.88,用來測試策略效果
2.將雙網卡主機的內核路由功能打開:
編輯文件: vim /etc/sysctl.conf 將內核路由功能打開,1爲打開,0爲關閉
然後sysctl -p 刷新生效
先將masquerade的狀態改爲yes,纔可使用僞裝和地址轉換功能:
3.編寫策略,如圖所示:
第一條策略爲當ip172.25.21.121通過ssh服務遠程登陸ip172.25.254.88主機時,僞裝ip爲ip172.25.254.221;
第二條策略意爲當ip爲172.25.254.88的主機通過ssh服務遠程登陸ip172.25.254.221時,ip172.25.254.221將其轉換到
ip爲172.25.21.121的主機上:
4.測試第一條策略:ip172.25.21.121的主機通過ssh服務遠程登陸ip172.25.254.88的主機:
通過雙網卡配置的內核路由功能和firewalld僞裝策略登陸成功:
ip172.25.254.88的主機看到是ip爲172.25.254.221的主機登陸痕跡,說明僞裝策略配置生效:
測試第二個策略:ip172.25.254.88的主機通過ssh服務登陸ip172.25.254.221的主機:
訪問的是ip172.25.254.221的主機,看到的卻是ip172.25.21.121的主機,說明網絡地址轉換配置生效: