1、FIREWALLD簡介
vim
動態防火牆後臺程序FIREWALLD提供一個動態管理的防火牆,用以支持網絡"zones",以分配對一個網絡即相關連接和界面的必定程度的信任。它具有IPV4和IPV6對防火牆設置的支持。它還具有一個通向服務或應用程序以直接增長防火牆規則的接口。瀏覽器
2、FIREWALLD的基本瞭解
服務器
上層管理工具:iptables(server) ;firewalld(高集成) 網絡
1)防火牆firewalld的安裝、開啓 (在一個系統中只能有一種防火牆工做)
ssh
yum install firewalld -y ##安裝防火牆firewalld
tcp
systemctl start firewalld工具
systemctl enable firewalld
測試
systemctl status firewalld.service spa
firewall-cmd --list-all ##查看firewalld火牆信息
命令行
2) 防火牆iptables的安裝、開啓(要是開啓iptables的話,必須先關閉firewalld防火牆)
systemctl stop firewalld ##關閉firewalld
systemctl mask firewalld ##把firewalld火牆上鎖
yum install iptables-server -y ##安裝iptables火牆
systemctl start iptables.server
systemctl enable iptables
iptables -nL ##顯示iptables火牆信息
4、使用命令行接口配置防火牆
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 ##查看火牆內可開啓的全部服務
firewall-cmd --list-all-zones ##列出全部域的詳細信息
firewall-cmd --set-default-zone=dmz ##修改默認域爲dmz
firewall-cmd --add-source=172.25.254.21 --zone=public ##添加ip到public域中
firewall-cmd --add-interface=eth1 --zone=trusted ##給trusted域添加接口
firewall-cmd --get-active-zones ##查看如今可用的域
firewall-cmd --remove-source=172.25.254.21 --zone=public 從publuc域中移出ip主機
注意:當默認活躍類型時trusted的時候,全部請求均可以經過。當爲public的時候,添加進去容許訪問的ip和接口,就能夠進行訪問!
當爲永久設定的時候,設定完成要使用reload命令從新加載,使其生效。
修改服務,reload不會馬上中斷(會讀修改的配置文件);complete會馬上中斷
5、火牆端口的修改
示例:對httpd服務進行測試;http默認端口爲80,當修改httpd服務的配置文件以後,要想在瀏覽器中訪問,得改變火牆中容許的端口號。需進行以下修改!
1)vim /etc/httpd/conf/httpd.conf
2) systemctl restart httpd
3) firewall-cmd --permanent --add-server=http
firewall-cmd --permanent --add-port=8080/tcp --zone=public ##永久修改,至關與改寫了配置文件/etc/firewalld/zones中的public.xml文件(能夠看到有端口信息的存在)
查看/etc/firewalld/zones/public.xml的內容:
、
6、火牆的高級規則
firewall-cmd --direct --get-all-rules ##查看已有的規則
iptables -nL ##查看加進去的規則
1)實驗一:不讓21的主機訪問22端口
一、 firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -s 172.25.254.21 -p tcp --dport 22 -j REJECT ##添加一個規則;類型是filter的input列
二、 測試結果以下:(在21主機上進行)
三、firewall-cmd --direct --remove-rule ipv4 filter INPUT 1 -s 172.25.254.21 -p tcp --dport 22 -j REJECT ##刪除規則
2)實驗二:端口轉發(當鏈接121主機的時候,會自動鏈接到221主機上。)
一、 首先修改服務器端(121)的火牆信息:
firewall-cmd --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.221 ##添加規則:端口爲22;協議tcp;到達端口22;目的地址爲221
firewall-cmd --list-all 會顯示目的端口地址
二、完成以後,在客戶端進行測試。在鏈接121後的IP爲221:(此時要輸入的密碼爲目的地址221的密碼)
註釋: 在221主機中輸入:--- w -i --- 能夠查看鏈接本機的狀況
三、規則的刪除:
3)實驗三:源地址的轉換(進行不一樣網段的鏈接)
一、 修改服務端的masquerade爲yes;添加兩個接口的ip (須要有兩個物理網卡)
[root@desktop121 ~]# firewall-cmd --add-masquerade ##開啓假裝功能
修改後的網絡接口信息以下所示:
二、修改服務端配置文件(使兩個接口能夠進行轉換)
sysctl -a | grep forward ##查看forward相關服務的開
vim /etc/sysctl.conf ----> net.ipv4.ip_forward=1 ##開啓接口轉換功能
sysctl -p ##刷新
三、客戶端進行ip和網關的設定
vim /etc/sysconfig/network-scripts/ifcfg-eth0 #此處的網關爲服務端中eth1的IP
systemctl restart network ##重啓網絡服務
ifconfig eth0 ##查看已修改ip
四、客戶端就能夠鏈接其餘網段的ip來測試
補充:firewall-cmd --add-icmp-block=destination-unreachable ##添加連接時的提示信息
firewall-cmd --remoce-icmp-block=destination-unreachable ##移除規則
firewall-cmd --get-icmptypes ##查看全部可用提示信息