溫馨提示×

如何配置CentOS Java防火墻

小樊
37
2025-10-08 23:02:08
欄目: 編程語言

一、前置準備:確認Java應用端口
在配置防火墻前,需先明確Java應用程序監聽的端口(如Spring Boot默認的8080端口、Tomcat默認的8005/8080端口)??赏ㄟ^以下方式獲?。?/p>

  • 查看應用配置文件(如application.properties中的server.port、Tomcat的server.xml);
  • 檢查應用啟動日志(通常會輸出“Listening on port XXXX”);
  • 使用netstat -tuln | grep javass -tuln | grep java命令查看Java進程占用的端口。

二、安裝與啟動Firewalld(CentOS默認防火墻工具)

  1. 安裝firewalld
    若系統未安裝firewalld,執行以下命令安裝:
    sudo yum install firewalld -y
    
  2. 啟動并設置開機自啟
    sudo systemctl start firewalld    # 啟動服務
    sudo systemctl enable firewalld   # 設置開機自動啟動
    
  3. 驗證狀態
    sudo firewall-cmd --state         # 應返回“running”(運行中)
    sudo firewall-cmd --get-active-zones  # 查看當前活動的防火墻區域(如“public”)
    

三、配置Java應用端口規則

1. 開放單個端口(常用)

若Java應用運行在8080端口(TCP協議),執行以下命令:

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
  • --zone=public:將規則添加到“public”區域(適用于公網或外部訪問);
  • --add-port=8080/tcp:允許TCP協議的8080端口通過;
  • --permanent:規則永久生效(重啟系統后仍保留)。

應用規則

sudo firewall-cmd --reload  # 重新加載配置使新規則生效

2. 開放端口范圍

若Java應用需要開放多個連續端口(如8080-8090),執行:

sudo firewall-cmd --zone=public --add-port=8080-8090/tcp --permanent
sudo firewall-cmd --reload

3. 驗證端口規則

  • 查看所有開放端口:
    sudo firewall-cmd --list-ports
    
  • 查看特定區域的詳細規則:
    sudo firewall-cmd --zone=public --list-all
    
  • 測試端口連通性(從另一臺機器執行):
    curl http://your-server-ip:8080  # 若返回應用響應,說明端口開放成功
    

四、限制訪問源(可選,提升安全性)
若僅需允許特定IP地址訪問Java應用(如公司內網IP192.168.1.100),可使用富規則(Rich Rule)

sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="8080" accept' --permanent
sudo firewall-cmd --reload
  • family="ipv4":針對IPv4地址;
  • source address="192.168.1.100":允許的源IP;
  • port protocol="tcp" port="8080":目標端口及協議;
  • accept:允許訪問。

刪除富規則

sudo firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="8080" accept' --permanent
sudo firewall-cmd --reload

五、配置SELinux(若啟用)
若系統啟用了SELinux(sestatus返回“Enforcing”),需調整SELinux策略以允許Java應用使用指定端口:

  1. 查看SELinux狀態

    sestatus
    
  2. 允許端口通過SELinux
    若Java應用使用8080端口(非默認的HTTP端口80),需將其添加到http_port_t類型:

    sudo semanage port -a -t http_port_t -p tcp 8080
    
    • semanage:SELinux管理工具;
    • -a:添加端口;
    • -t http_port_t:指定端口類型為HTTP服務;
    • -p tcp:協議類型;
    • 8080:端口號。
  3. 驗證SELinux端口配置

    sudo semanage port -l | grep http_port_t
    

    輸出應包含8080/tcp。

六、常見問題排查

  • 防火墻未運行:確保systemctl start firewalld已執行,且狀態為“running”;
  • 端口未開放:檢查firewall-cmd --list-all是否包含目標端口,或netstat -tuln是否顯示Java應用在監聽該端口;
  • SELinux阻止訪問:若應用無法訪問,嘗試臨時將SELinux設為“permissive”模式(sudo setenforce 0),測試是否解決問題,再調整SELinux策略。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女