温馨提示×

centos防火墙远程管理

小樊
46
2025-11-01 12:49:22
栏目: 智能运维

CentOS防火墙远程管理配置指南
远程管理CentOS服务器时,防火墙是保障安全的关键组件。本文以CentOS 7/8系统为例,介绍如何通过firewalld(CentOS默认防火墙工具)配置远程管理,涵盖基础操作、SSH远程访问优化及安全增强等内容。

一、基础准备:确认firewalld状态

在配置前,需先检查firewalld是否运行及版本兼容性:

# 查看firewalld运行状态(running表示开启)
systemctl status firewalld

# 查看firewalld版本(确认支持远程管理功能)
firewall-cmd --version

若未安装firewalld(CentOS 7及以上系统通常预装),可通过以下命令安装:

yum install firewalld -y

二、开启防火墙(若未开启)

远程管理需确保防火墙处于运行状态,否则无法接收外部请求:

# 启动firewalld服务
systemctl start firewalld

# 设置开机自动启动(避免重启后失效)
systemctl enable firewalld

三、配置SSH远程访问(核心步骤)

SSH是远程管理CentOS的主要方式,需确保22端口(或自定义SSH端口)开放:

1. 开放默认SSH端口(22/tcp)

# 永久开放22端口(--permanent参数使规则持久化)
firewall-cmd --zone=public --add-port=22/tcp --permanent

# 重新加载防火墙配置(使规则生效)
firewall-cmd --reload

2. 验证端口开放状态

# 查看已开放的TCP端口(确认22端口存在)
firewall-cmd --zone=public --list-ports

# 或通过查询指定端口状态(返回yes表示开放)
firewall-cmd --query-port=22/tcp

四、优化SSH远程管理安全(可选但推荐)

为降低被暴力破解的风险,建议修改SSH默认配置:

1. 修改SSH端口(避免使用默认22端口)

编辑SSH配置文件:

vi /etc/ssh/sshd_config

找到#Port 22行,取消注释并修改为自定义端口(如2222):

Port 2222

保存后重启SSH服务:

systemctl restart sshd

注意:修改端口后,需在firewalld中开放新端口(参考步骤三),否则无法连接。

2. 禁止root用户远程登录

编辑SSH配置文件:

vi /etc/ssh/sshd_config

找到#PermitRootLogin yes行,修改为:

PermitRootLogin no

重启SSH服务使配置生效:

systemctl restart sshd

此后,root用户需通过普通账号登录后,再用su - root切换至root权限。

3. 限制允许远程登录的用户

在SSH配置文件中添加AllowUsers指令,指定允许远程登录的用户名(如user1、user2):

AllowUsers user1 user2

重启SSH服务:

systemctl restart sshd

五、其他常用防火墙操作

1. 开放其他远程管理端口

若需开放其他端口(如远程桌面端口3389,需安装xrdp服务),可使用以下命令:

# 永久开放3389/tcp端口
firewall-cmd --zone=public --add-port=3389/tcp --permanent

# 重新加载配置
firewall-cmd --reload

2. 关闭指定端口

若不再需要某个远程管理端口,可永久移除规则:

# 永久移除2222/tcp端口(假设之前修改的SSH端口)
firewall-cmd --zone=public --remove-port=2222/tcp --permanent

# 重新加载配置
firewall-cmd --reload

3. 查看防火墙规则详情

# 查看所有开放端口
firewall-cmd --list-ports

# 查看所有开放服务(firewalld预定义的服务,如ssh、http)
firewall-cmd --list-services

# 查看当前区域(默认为public)
firewall-cmd --get-active-zones

六、常见问题排查

1. 远程连接失败

  • 检查防火墙是否开启:systemctl status firewalld(若未开启,启动服务)。
  • 检查端口是否开放:firewall-cmd --query-port=22/tcp(若未开放,参考步骤三开放端口)。
  • 检查SSH服务是否运行:systemctl status sshd(若未运行,启动服务)。

2. 防火墙规则不生效

  • 确保使用了--permanent参数(临时规则重启后失效)。
  • 执行firewall-cmd --reload重新加载配置(无需重启服务)。

通过以上步骤,可完成CentOS防火墙的远程管理配置,既保证服务器安全,又满足远程访问需求。需根据实际场景调整端口和规则,定期检查防火墙日志(journalctl -u firewalld)以监控异常访问。

0