CentOS防火墙远程管理配置指南
远程管理CentOS服务器时,防火墙是保障安全的关键组件。本文以CentOS 7/8系统为例,介绍如何通过firewalld(CentOS默认防火墙工具)配置远程管理,涵盖基础操作、SSH远程访问优化及安全增强等内容。
在配置前,需先检查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是远程管理CentOS的主要方式,需确保22端口(或自定义SSH端口)开放:
# 永久开放22端口(--permanent参数使规则持久化)
firewall-cmd --zone=public --add-port=22/tcp --permanent
# 重新加载防火墙配置(使规则生效)
firewall-cmd --reload
# 查看已开放的TCP端口(确认22端口存在)
firewall-cmd --zone=public --list-ports
# 或通过查询指定端口状态(返回yes表示开放)
firewall-cmd --query-port=22/tcp
为降低被暴力破解的风险,建议修改SSH默认配置:
编辑SSH配置文件:
vi /etc/ssh/sshd_config
找到#Port 22行,取消注释并修改为自定义端口(如2222):
Port 2222
保存后重启SSH服务:
systemctl restart sshd
注意:修改端口后,需在firewalld中开放新端口(参考步骤三),否则无法连接。
编辑SSH配置文件:
vi /etc/ssh/sshd_config
找到#PermitRootLogin yes行,修改为:
PermitRootLogin no
重启SSH服务使配置生效:
systemctl restart sshd
此后,root用户需通过普通账号登录后,再用su - root切换至root权限。
在SSH配置文件中添加AllowUsers指令,指定允许远程登录的用户名(如user1、user2):
AllowUsers user1 user2
重启SSH服务:
systemctl restart sshd
若需开放其他端口(如远程桌面端口3389,需安装xrdp服务),可使用以下命令:
# 永久开放3389/tcp端口
firewall-cmd --zone=public --add-port=3389/tcp --permanent
# 重新加载配置
firewall-cmd --reload
若不再需要某个远程管理端口,可永久移除规则:
# 永久移除2222/tcp端口(假设之前修改的SSH端口)
firewall-cmd --zone=public --remove-port=2222/tcp --permanent
# 重新加载配置
firewall-cmd --reload
# 查看所有开放端口
firewall-cmd --list-ports
# 查看所有开放服务(firewalld预定义的服务,如ssh、http)
firewall-cmd --list-services
# 查看当前区域(默认为public)
firewall-cmd --get-active-zones
systemctl status firewalld(若未开启,启动服务)。firewall-cmd --query-port=22/tcp(若未开放,参考步骤三开放端口)。systemctl status sshd(若未运行,启动服务)。--permanent参数(临时规则重启后失效)。firewall-cmd --reload重新加载配置(无需重启服务)。通过以上步骤,可完成CentOS防火墙的远程管理配置,既保证服务器安全,又满足远程访问需求。需根据实际场景调整端口和规则,定期检查防火墙日志(journalctl -u firewalld)以监控异常访问。