CentOS 7 Firewalld防火牆配置

https://www.cnblogs.com/xiluhua/p/5929222.html

https://www.cnblogs.com/xxoome/p/7115614.html

https://www.linuxidc.com/Linux/2018-11/155155.htm

https://www.cnblogs.com/zqifa/p/linux-firewall-1.html

https://blog.csdn.net/dhjibk/article/details/80558248

http://lxgyw.cn/@@@/15216870315478.html

 

一、介紹

防火牆守護 firewalld 服務引入了一個信任級別的概念來管理與之相關聯的連接與接口。它支持 ipv4 與 ipv6,並支持網橋,採用 firewall-cmd (command) 或 firewall-config (gui) 來動態的管理 kernel netfilter 的臨時或永久的接口規則,並實時生效而無需重啓服務。

Firewall 能將不同的網絡連接歸類到不同的信任級別,Zone 提供了以下幾個級別

drop: 丟棄所有進入的包,而不給出任何響應
block: 拒絕所有外部發起的連接,允許內部發起的連接
public: 允許指定的進入連接
external: 同上,對僞裝的進入連接,一般用於路由轉發
dmz: 允許受限制的進入連接
work: 允許受信任的計算機被限制的進入連接,類似 workgroup
home: 同上,類似 homegroup
internal: 同上,範圍針對所有互聯網用戶
trusted: 信任所有連接

二、安裝

# yum install firewalld
如果需要圖形界面的話,則再安裝
# yum install firewall-config

 

三、查看firewall服務狀態

  systemctl status firewalld
  firewall-cmd --state

  firewall-cmd --set-default-zone=public #設置默認接口區域

四、開啓、重啓、關閉、firewalld.service服務

# 開啓
service firewalld start
systemctl start firewalld.service
systemctl enable firewalld.service   #開啓firewall開機啓動 (設置開機自啓)
# 重啓
service firewalld restart
systemctl restart firewalld.service
firewall-cmd --reload   #重啓防火牆(修改配置後要重啓防火牆)
# 關閉
service firewalld stop
systemctl stop firewalld.service
systemctl disable firewalld.service   #禁止firewall開機啓動

五、查看防火牆規則

firewall-cmd --list-all   
netstat -ntlp 或:firewall-cmd --list-ports  #查看開放端口

systemctl list-unit-files | grep enabled   #查看已啓動的服務列表
systemctl --failed    #查看啓動失敗的服務列表

firewall-cmd --version    #查看版本:
firewall-cmd --help       #查看幫助:
firewall-cmd --zone=public --list-ports  #查看所有打開的端口

firewall-cmd --zome=dmz --list-ports  #列出 dmz 級別的被允許的進入端口
firewall-cmd --zone=work --add-service=smtp  #添加 smtp 服務至 work zone
firewall-cmd --get-zone-of-interface=eth0    #顯示eth0接口屬於的域

六、查看防火牆設置開機自啓是否成功:

systemctl is-enabled firewalld.service

firewall-cmd --get-active-zones   #顯示當前正在使用的區域與網卡名稱
firewall-cmd --get-default-zone   #查詢默認的區域名稱
firewall-cmd  --get-zones         #顯示可用的區域

七、開啓特定端口

開端口命令:firewall-cmd --zone=public --add-port=80/tcp --permanent
開放端口區間:firewall-cmd --permanent --zone=public --add-port=8080-9999/tcp   #永久
重啓防火牆:systemctl restart firewalld.service   #重啓後才能生效
更新防火牆規則:firewall-cmd --reload
firewall-cmd --complete-reload    # 更新規則,重啓服務

命令含義:
--zone #作用域
--add-port=80/tcp  #添加端口,格式爲:端口/通訊協議
--permanent   #永久生效,沒有此參數重啓後失效

# 查詢端口是否開放
firewall-cmd --query-port=8080/tcp
# 移除端口
firewall-cmd --permanent --remove-port=8080/tcp

firewall-cmd --zone=public --add-interface=eth0 --permanent #添加某接口至某信任等級,譬如添加 eth0 至 public,再永久生效
firewall-cmd --set-default-zone=public   #設置 public 爲默認的信任級別

八、端口轉發

要打開端口轉發,則需要先
# firewall-cmd --zone=external --add-masquerade

然後轉發 tcp 22 端口至 3753
# firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=3753

轉發 22 端口數據至另一個 ip 的相同端口上
# firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toaddr=192.168.1.100

轉發 22 端口數據至另一 ip 的 2055 端口上
# firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.168.1.100


端口轉發的目的:當我們在真機裏登陸172.25.254.218這臺主機,進行僞裝後,當通過 22 端口訪問本機時,將請求轉發到 172.25.254.118這臺 主機上,同時還要開啓 masquerade轉發接口
# firewall-cmd --add-forward-port=port=22:proto=tcp:toport=22:toaddr=172.25.254.118
    #添加端口22並通過tcp協議,轉發到172.25.254.118這臺主機的22端口
    # --add-forward-port= 添加端口
    # proto=tcp 通過tcp協議進行轉發
    # toport= 轉發到某個端口
    # toaddr= 轉發到172.25.254.118這臺主機上
# firewall-cmd  --add-masquerade    #打開轉發端口

九、開啓應急模式阻斷所有網絡連接

# firewall-cmd --panic-on
 //在 0.3.0 之前的 FirewallD版本中, panic 選項是 –enable-panic 與 –disable-panic

關閉應急模式
# firewall-cmd --panic-off

查看應急模式的狀態
# firewall-cmd --query-panic

在不改變狀態的條件下重新加載防火牆:
# firewall-cmd --reload

防火牆預定義的服務配置文件是xml文件 目錄在 /usr/lib/firewalld/services/
在 /etc/firewalld/services/ 這個目錄中也有配置文件 但是/etc/firewalld/services/目錄 優先於 /usr/lib/firewalld/services/ 目錄
修改配置文件後 使用命令重新加載


# firewall-cmd --reload

在每次修改 端口和服務後 /etc/firewalld/zones/public.xml 文件就會被修改 所以也可以在文件中之間修改 然後重新加載

十、設置某個ip 訪問某個服務

添加規則
# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.0.4/24" service name="http" accept"

刪除上面設置的規則
#firewall-cmd --permanent --zone=public --remove-rich-rule="rule family="ipv4" source address="192.168.0.4/24" service name="http" accept"

ip 192.168.0.4/24 訪問 http
設置後 public.xml 就會出現變化

 

十一、修改規則

firewall-cmd --change-interface=eth0 --zone=trusted    #修改區域爲trusted的網絡接口eth0
firewall-cmd --remove-interface=eth0 --zone=trusted    #移除trusted區域的接口eth0
firewall-cmd --add-interface=eth0 --zone=public        #添加public區域的接口eth0

 

十二、地址僞裝

1、基本配置 
   (1)server這臺主機作爲轉換服務器; 
   (2)desktop這臺主機作爲局域網內的主機; 
   (3)真機這臺主機作爲外網的主機; 
2、基本原理:局域網內的主機訪問外網主機時,爲了隱藏局域網中的私有地址,通過轉換服務器進行地址的轉換,並在局域網的主機裏添加網關(路由器),當外網主機查詢時只能看到共有地址,這就是地址轉換; 
3、具體操作 
轉換服務器

(1)添加兩個網卡,eth0,eth1; 
(2)配置網絡,eth0設置爲公共地址(172.25.254.218),eth1設置爲私有地址(192.168.1.218),重啓網絡後,纔可以生效 
(3)打開轉發端口:firewall-cmd –add-masquerade 
(4)編輯配置文件,開啓內核路由功能sysctl -p ( net.ipv4.ip_forward=1),配置文件爲/etc/sysctl.conf

局域網內的主機

(1)設置局域網內的主機ip(192.168.1.118)和網關GATEWAY(192.168.1.218),重啓網絡後生效 
(2)登陸外網主機 ssh [email protected]

外網主機

查看誰登陸過這臺主機:w -i


 

 

 

 

 

 

 

 

 

 

 

 

 

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