在 Linux 服务器运维中,安全加固是保障业务稳定运行的核心环节。本文将从SSH 安全配置、防火墙策略、密码强度管理、暴力破解拦截、服务与系统更新五个维度,详细讲解服务器安全加固的专业实践方法,帮助运维人员构建多层次安全防御体系。
一、SSH 服务安全加固:端口修改与 Root 登录限制
SSH 是服务器远程管理的主要入口,其默认配置存在被暴力破解的风险,需从端口和用户权限两方面强化。
1. 创建普通管理员用户
避免直接使用 root 账号登录,通过创建普通用户并赋予 sudo 权限,降低权限滥用风险。
# 创建普通用户(替换 username 为实际用户名)
useradd -m username
# 设置用户密码
passwd username
# 赋予 sudo 权限
usermod -aG sudo username2. 修改 SSH 默认端口与 Root 登录限制
SSH 默认端口 22 是黑客扫描的高频目标,需修改为非默认端口,并禁止 root 直接登录。
# 编辑 SSH 配置文件
vim /etc/ssh/sshd_config
# 修改端口(示例:改为 2222,需确保端口未被占用)
Port 2222
# 禁止 Root 直接登录
PermitRootLogin no
# 重启 SSH 服务使配置生效
systemctl restart ssh二、防火墙策略:最小化端口开放
通过防火墙限制端口访问,仅开放业务必需端口,阻断非法访问路径。以 UFW 防火墙为例:
1. 防火墙状态检查与启动
# 查看 UFW 状态
systemctl status ufw
# 启动 UFW 并设置开机自启
systemctl start ufw
systemctl enable ufw2. 端口开放与拦截规则
仅开放业务所需端口(如 SSH 新端口、Web 服务端口等),拦截默认远程桌面等高危端口。
# 开放 SSH 新端口(示例:2222)
ufw allow 2222/tcp
# 开放 Web 服务端口(HTTP/HTTPS)
ufw allow 80/tcp
ufw allow 443/tcp
# 拦截远程桌面 3389 端口
ufw deny 3389/tcp
# 查看已开放端口
ufw status三、密码策略强化:复杂度与定期更新
弱密码是服务器被攻破的主要原因之一,需从密码复杂度和更新周期两方面严格管控。
1. 密码复杂度配置
通过 PAM 模块强制密码复杂度要求(长度、字符类型等)。
vim /etc/pam.d/common-password
# 在对应行添加复杂度参数(示例:长度≥12,包含数字、大小写字母、特殊字符)
password requisite pam_pwquality.so retry=3 minlen=12 dcredit=-1 ucredit=-1 lcredit=-1 ocredit=-1 enforce_for_root2. 密码更新周期设置
编辑登录配置文件,定义密码最长使用天数、最短使用天数和过期提醒天数。
vim /etc/login.defs
# 密码最长使用天数(示例:90 天)
PASS_MAX_DAYS 90
# 密码最短使用天数(示例:7 天)
PASS_MIN_DAYS 7
# 密码过期提前警告天数(示例:14 天)
PASS_WARN_AGE 14四、暴力破解拦截:fail2ban 部署与配置
fail2ban 可监控登录日志,自动封禁多次认证失败的 IP,有效拦截暴力破解攻击。
1. fail2ban 安装与启动
# 安装 fail2ban
sudo apt update && sudo apt install fail2ban -y
# 启动并设置开机自启
systemctl start fail2ban
systemctl enable fail2ban2. 状态检查与默认规则
fail2ban 默认规则已覆盖 SSH 等服务的暴力破解防护,可通过以下命令查看状态:
systemctl status fail2ban五、无用服务关闭与系统更新
关闭冗余服务可减少攻击面,定期更新系统和软件可修复已知漏洞。
1. 无用服务识别与关闭
# 查看已启用的服务
systemctl list-unit-files --type=service --state=enabled
# 关闭并禁用无用服务(替换 service-name 为实际服务名)
systemctl stop service-name
systemctl disable service-name2. 系统与软件包更新
# 更新软件包列表与已安装包
sudo apt update && sudo apt upgrade -y总结
通过 SSH 安全配置、防火墙最小化端口开放、强密码策略、fail2ban 暴力破解拦截、冗余服务关闭与系统更新 这五项措施,可显著提升 Linux 服务器的安全防护能力。建议在服务器初始化完成后立即执行上述操作,构建从入口到系统层的全链路安全防御。