centos

如何配置CentOS Java防火墙

小樊
39
2025-10-08 23:02:08
栏目: 编程语言

一、前置准备:确认Java应用端口
在配置防火墙前,需先明确Java应用程序监听的端口(如Spring Boot默认的8080端口、Tomcat默认的8005/8080端口)。可通过以下方式获取:

二、安装与启动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

应用规则

sudo firewall-cmd --reload  # 重新加载配置使新规则生效

2. 开放端口范围

若Java应用需要开放多个连续端口(如8080-8090),执行:

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

3. 验证端口规则

四、限制访问源(可选,提升安全性)
若仅需允许特定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

删除富规则

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

六、常见问题排查

0
看了该问题的人还看了