首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

CentOS 7 Firewall 防火牆實戰配置指南

     編輯:Java 綜合教學

CentOS 7 Firewall 防火牆實戰配置指南

CentOS 7 引入 firewalld 動態管理防火牆,支持區域、服務、端口、富規則等多維度配置,且修改即時生效無需重啟服務。本文以「PostgreSQL HA 集群」為場景,演示內網/公網分區開放端口、限定來源 IP 訪問的完整操作流程。

場景需求

服務 端口/協議 備註
PostgreSQL 5432/tcp 建議修改非默認端口
pcsd 2224/tcp 集群管理
corosync 5405/udp 集群通訊

服務器雙網卡:eno16777736 (公網)、eno33554984 (內網),初始均綁定 public 區域。

步驟 1:查看當前配置

firewall-cmd --list-all

步驟 2:將內網卡遷移至 internal 區域

# 即時生效
firewall-cmd --zone=internal --change-interface=eno33554984

# 永久生效(寫入網卡配置文件)
echo "ZONE=internal" >> /etc/sysconfig/network-scripts/ifcfg-eno33554984

步驟 3:在 internal 區域永久開放集群端口

firewall-cmd --permanent --zone=internal --add-port=5432/tcp
firewall-cmd --permanent --zone=internal --add-port=2224/tcp
firewall-cmd --permanent --zone=internal --add-port=5405/udp
firewall-cmd --reload

# 驗證
firewall-cmd --list-all --zone=internal

步驟 4:公網區域限定來源 IP 訪問 PostgreSQL(富規則)

# 僅允許 192.168.0.213 訪問公網 5432 端口
firewall-cmd --permanent --zone=public \
  --add-rich-rule='rule family=ipv4 source address=192.168.0.213/32 port protocol=tcp port=5432 accept'

firewall-cmd --reload

常用操作速查表

操作 命令
查看所有區域 firewall-cmd --get-zones
查看活躍區域 firewall-cmd --get-active-zones
查看指定區域詳情 firewall-cmd --list-all --zone=internal
添加服務(如 http) firewall-cmd --permanent --zone=public --add-service=http
移除端口 firewall-cmd --permanent --zone=public --remove-port=8080/tcp
緊急封鎖 IP firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=1.2.3.4 reject'
查看富規則 firewall-cmd --list-all --zone=public | grep rich

最佳實踐提醒

  1. 默認拒絕:只開放業務必要端口,遵循最小權限原則。
  2. 區域隔離:內網、公網、DMZ 使用不同區域,策略互不干擾。
  3. 富規則精準控制:單 IP、網段、時間段、日志記錄均可靈活組合。
  4. 配置持久化:生產環境務必加 --permanent 並 --reload,防重啟失效。
  5. 修改默認 SSH 端口:減少暴力破解風險,並用富規則限制管理 IP。

熟練掌握 firewalld,讓服務器安全防線既嚴密又靈活。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved