请使用手机微信扫码安全登录

切换账号密码登录

绑定手机号

应国家法规对于账号实名的要求,请您在进行下一步操作前,需要先完成手机绑定 (若绑定失败,请重新登录绑定)。了解更多

不绑定绑定手机号

360官网 | 360商城

推荐论坛版块活动360粉丝商城众测粉丝轰趴馆常见问题
Linux 系统凭借其稳定性和灵活性,在服务器领域占据着举足轻重的地位。据 Linux 基金会研究显示,86% 的企业已采用 Linux 构建云计算和大数据平台。然而,"Linux 默认安全" 是一个普遍存在的认知误区。近年来,针对 Linux 服务器的攻击案例逐年增加,多数漏洞源于配置不当而非系统本身缺陷。本文将从物理安全到持续监控,全方位介绍 Linux 系统的安全加固方法,帮助你构建真正可靠的防御体系。

一、物理安全:筑牢第一道防线
物理安全是服务器防护的基础,即使最严密的网络防护也无法弥补物理访问的漏洞。对于企业服务器而言,应确保由专业人员进行硬件维护,并实施严格的访问控制策略。
关键操作步骤:
进入 BIOS 设置,禁用 CD/DVD、USB 等外部设备的启动权限,防止通过启动盘绕过系统安全。
设置高强度 BIOS 密码,复杂度应包含大小写字母、数字和特殊符号。
禁用 USB 存储设备以防止数据泄露或恶意软件植入
bash
# 创建配置文件
sudo vim /etc/modprobe.d/block-usb.conf
# 添加以下内容
install usb-storage /bin/true
实施机房访问登记制度,限制非授权人员接触服务器硬件。
物理安全的核心原则是:假设攻击者拥有物理访问权限时,如何最大限度降低风险。上述措施可有效防止通过硬件接口进行的入侵尝试。


二、系统基础加固:减少攻击面
系统安装和初始化配置阶段的安全措施,直接影响后续整个生命周期的安全状态。遵循最小化原则是这一阶段的核心思想。
2.1 保持系统更新
及时安装安全补丁是防范已知漏洞的最有效手段。不同 Linux 发行版采用不同的包管理工具:
CentOS/RHEL 8 及以上版本:
bash
# 检查可用更新
sudo dnf check-update
# 安装安全更新
sudo dnf update --security
# 设置自动更新
sudo dnf install -y dnf-automatic
sudo systemctl enable --now dnf-automatic.timer
Ubuntu/Debian 系统:
bash
# 安装自动更新工具
sudo apt install -y unattended-upgrades
# 配置自动更新
sudo dpkg-reconfigure --priority=low unattended-upgrades
注意:生产环境更新前应先在测试环境验证,避免兼容性问题。建议每周至少检查一次安全更新。
2.2 精简系统服务
默认安装的 Linux 系统会启用许多不必要的服务,这些服务可能成为攻击入口。使用 systemctl 工具管理服务:
bash
# 列出所有运行中的服务
sudo systemctl list-units --type=service --state=running
# 禁用不必要的服务(以cups为例)
sudo systemctl stop cups
sudo systemctl disable cups
# 禁止服务开机启动
sudo systemctl mask cups
常见应禁用的服务包括打印服务 (cups)、远程桌面 (vncserver)、蓝牙 (bluetooth) 等非必需服务。精简原则是:只保留业务必需的服务。
三、远程访问安全:守护 SSH 大门
SSH 是远程管理 Linux 服务器的主要方式,也是攻击者的重点目标。据统计,超过 50% 的服务器入侵始于 SSH 暴力破解。
3.1 基本安全配置
修改 SSH 配置文件/etc/ssh/sshd_config,强化安全设置:
bash
# 备份原始配置
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
# 修改配置参数
sudo vim /etc/ssh/sshd_config
关键配置项:
plaintext
# 修改默认端口(建议使用1024-65535之间的端口)
Port 2222
# 禁用root直接登录
PermitRootLogin no
# 禁用密码登录,强制使用密钥认证
PasswordAuthentication no
# 启用公钥认证
PubkeyAuthentication yes
# 限制允许登录的用户
AllowUsers username@192.168.1.*
# 设置登录超时时间
ClientAliveInterval 300
ClientAliveCountMax 3
修改完成后重启 SSH 服务:
bash
sudo systemctl restart sshd
3.2 部署暴力破解防护
安装 fail2ban 工具自动拦截恶意登录尝试:
bash
# 安装fail2ban
sudo apt install -y fail2ban # Ubuntu/Debian
sudo dnf install -y fail2ban # CentOS/RHEL
# 配置SSH防护
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo vim /etc/fail2ban/jail.local
在配置文件中设置:
plaintext
[sshd]
enabled = true
port = 2222 # 与SSH配置的端口一致
maxretry = 3 # 最大尝试次数
bantime = 3600 # 封禁1小时
findtime = 600 # 10分钟内触发阈值
启动并设置开机自启:
bash
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
四、用户与权限管理:遵循最小权限原则
权限管理不当是导致多数安全事件的根源。合理分配用户权限、强化密码策略是系统安全的关键环节。
4.1 用户账号管理
创建普通用户并授权:
bash
# 创建用户
sudo useradd -m -s /bin/bash username
# 设置密码
sudo passwd username
# 授予sudo权限
sudo visudo
# 添加以下行
username ALL=(ALL) /usr/bin/systemctl restart nginx, /usr/bin/dnf update
临时用户管理:
bash
# 锁定用户
sudo usermod -L username
# 解锁用户
sudo usermod -U username
# 删除临时用户(连同家目录)
sudo userdel -r username
4.2 强化密码策略
使用 pam_pwquality 模块设置密码复杂度:
bash
# 编辑配置文件
sudo vim /etc/pam.d/system-auth
# 添加或修改以下行
password requisite pam_pwquality.so retry=3 minlen=12 difok=3 \
ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1 enforce_for_root
参数说明:
minlen=12:密码最小长度 12 位
difok=3:与旧密码至少 3 个字符不同
ucredit=-1:至少 1 个大写字母
lcredit=-1:至少 1 个小写字母
dcredit=-1:至少 1 个数字
ocredit=-1:至少 1 个特殊字符
enforce_for_root:root 用户也受限制
同时修改/etc/login.defs设置密码有效期:
bash
PASS_MAX_DAYS 90
PASS_MIN_DAYS 7
PASS_WARN_AGE 14
五、文件系统保护:关键文件加固
Linux 系统的核心配置文件和用户信息文件需要特别保护,防止未授权修改。
5.1 关键文件权限设置
检查并修复敏感文件权限:
bash
# /etc/passwd 应设置为644
sudo chmod 644 /etc/passwd
# /etc/shadow 应设置为000
sudo chmod 000 /etc/shadow
# 限制sudoers文件权限
sudo chmod 440 /etc/sudoers
5.2 设置文件不可修改属性
使用 chattr 命令保护关键文件:
bash
# 防止/etc/passwd被修改
sudo chattr +i /etc/passwd
sudo chattr +i /etc/shadow
sudo chattr +i /etc/group
sudo chattr +i /etc/gshadow
# 解除保护(需要时)
sudo chattr -i /etc/passwd
注意:设置 + i 属性后,即使 root 用户也无法修改文件,需解除保护后才能进行配置更改。


六、防火墙配置:控制网络流量
防火墙是抵御网络攻击的重要屏障,应遵循 "默认拒绝,按需允许" 的原则配置。
6.1 firewalld 配置(CentOS/RHEL)
bash
# 启动并设置开机自启
sudo systemctl start firewalld
sudo systemctl enable firewalld
# 查看当前规则
sudo firewall-cmd --list-all
# 允许SSH端口
sudo firewall-cmd --permanent --add-port=2222/tcp
# 允许HTTP和HTTPS
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
# 重新加载配置
sudo firewall-cmd --reload
6.2 UFW 配置(Ubuntu/Debian)
bash
# 安装UFW
sudo apt install -y ufw
# 启动并设置开机自启
sudo ufw enable
# 允许SSH端口
sudo ufw allow 2222/tcp
# 允许HTTP和HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 查看规则
sudo ufw status numbered
6.3 高级规则设置
限制特定 IP 访问:
bash
# 只允许特定IP段访问SSH(firewalld)
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="2222" accept'
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port protocol="tcp" port="2222" reject'
# UFW equivalent
sudo ufw allow from 192.168.1.0/24 to any port 2222/tcp
sudo ufw deny 2222/tcp
七、数据备份策略:防范数据丢失
数据备份是应对勒索攻击和硬件故障的最后一道防线,应采用 "321 备份原则":至少 3 份备份,2 种不同介质,1 份异地存储。
7.1 自动化备份脚本
创建 rsync 备份脚本:
bash
#!/bin/bash
# backup_script.sh
BACKUP_DATE=$(date +%Y%m%d)
SOURCE_DIR="/var/www/html"
BACKUP_DIR="/backup/local"
REMOTE_BACKUP="user@remote_server:/backup/remote"
# 本地备份
rsync -avz --delete $SOURCE_DIR $BACKUP_DIR/$BACKUP_DATE
# 异地备份
rsync -avz $BACKUP_DIR/$BACKUP_DATE $REMOTE_BACKUP
# 删除7天前的本地备份
find $BACKUP_DIR -type d -mtime +7 -delete
设置执行权限并添加到定时任务:
bash
chmod +x backup_script.sh
sudo crontab -e
# 添加以下行,每天凌晨2点执行
0 2 * * * /path/to/backup_script.sh
7.2 备份验证
定期检查备份完整性:
bash
# 生成文件校验值
find /var/www/html -type f -print0 | xargs -0 sha256sum > /backup/checksums.sha256
# 验证备份
cd /backup/local/latest
sha256sum -c /backup/checksums.sha256
八、安全审计与监控:及时发现异常
建立完善的监控机制,及时发现并响应安全事件。
8.1 系统审计工具
安装并运行 Lynis 进行系统安全审计:
bash
# 安装Lynis
sudo apt install -y lynis # Ubuntu/Debian
sudo dnf install -y lynis # CentOS/RHEL
# 执行系统审计
sudo lynis audit system
根据审计结果中的建议进行安全加固,重点关注标红的高风险项。
8.2 日志监控
配置日志集中管理,重点监控认证日志:
bash
# 监控SSH登录日志
sudo tail -f /var/log/auth.log | grep 'Failed password'
# 检查最近的sudo操作
sudo grep 'sudo' /var/log/auth.log | tail -n 20
设置日志轮转防止磁盘占满,定期分析日志中的异常记录。
九、安全加固清单
为方便日常运维,整理以下安全检查清单:
系统更新:每周检查并安装安全更新
服务状态:每月审查运行中的服务,禁用不必要服务
密码策略:确保所有用户密码符合复杂度要求
SSH 配置:确认禁用 root 登录和密码认证
防火墙规则:每月 Review 防火墙规则,删除冗余条目
备份验证:每季度进行一次备份恢复测试
安全审计:每半年执行一次全面系统审计
结语
Linux 系统安全是一个持续过程,而非一次性操作。随着攻击手段的不断演变,安全加固措施也需要与时俱进。本文介绍的方法覆盖了从物理安全到网络防护、从权限管理到数据备份的各个方面,遵循 "最小权限、纵深防御、持续监控" 的原则,可有效提升系统安全性。
记住,最坚固的安全防线是管理员的安全意识和良好的运维习惯。定期学习安全知识,关注最新漏洞情报,才能让你的 Linux 服务器真正做到 "防患于未然"。









共 0 个关于Linux 系统安全加固实用指南的回复 最后回复于 2025-9-18 10:30

评论

直达楼层

您需要登录后才可以回帖 登录 | 注册

本版积分规则

360fans_58973669 LV2.下士

粉丝:0 关注:0 积分:79

精华:0 金币:533 经验:71

IP属地: 广东省

最后登录时间:2025-9-18

私信 加好友

最新活动

纳智成篇,听你所想| 山城共话产品未来!36

排行榜

热度排行 查看排行
今日 本周 本月 全部
    今日 本周 本月 全部

      扫码添加360客服号,涨知识的同时还有超多福利等你哦

      快速回复 返回顶部 返回列表