扫码查看公告

Linux服务器安全加固完全指南:从基础配置到高级防护的7步实战教程

发布人:258云 分类:系统安全相关 发布时间:2026-07-10 16:04

根据2026年上半年的安全报告,全球超过65%的服务器入侵事件源于基础安全配置不当。许多管理员购买了云服务器后直接上线业务,忽略了最基础的安全加固步骤,导致服务器在数小时内就被自动化扫描工具攻破。本文将提供一份从零开始的完整安全加固教程,涵盖SSH配置、防火墙策略、内核参数优化、入侵检测和Web应用防护7个关键步骤。

第一步:SSH安全配置

SSH是服务器管理的第一道防线,也是攻击者最常尝试的突破口。默认的SSH配置存在多个安全隐患,必须在服务器上线前完成加固。

1.1 修改默认端口

将SSH从默认的22端口修改为非常用端口可以有效减少99%以上的自动化扫描攻击。编辑SSH配置文件:

# 编辑SSH配置
sudo vim /etc/ssh/sshd_config

# 修改以下参数
Port 2299                    # 修改为非标准端口(如258.hk服务器使用2299端口)
PermitRootLogin prohibit-password  # 禁止root密码登录,仅允许密钥认证
PasswordAuthentication no   # 完全禁用密码认证
PubkeyAuthentication yes    # 启用公钥认证
MaxAuthTries 3              # 限制认证尝试次数
ClientAliveInterval 300     # 空闲超时5分钟自动断开
ClientAliveCountMax 0

# 重启SSH服务
sudo systemctl restart sshd
⚠️ 重要提醒:在禁用密码认证之前,务必确认已将公钥添加到 ~/.ssh/authorized_keys 并且能够通过密钥成功登录。否则你将永久失去服务器访问权限。建议保留一个已打开的SSH会话直到确认新配置生效。

1.2 配置Fail2Ban

Fail2Ban可以自动封禁多次认证失败的IP地址,有效防范暴力破解:

# 安装Fail2Ban
sudo apt install fail2ban -y   # Debian/Ubuntu
sudo yum install fail2ban -y   # CentOS/RHEL

# 创建本地配置覆盖
sudo vim /etc/fail2ban/jail.local

[DEFAULT]
bantime = 3600                 # 封禁1小时
findtime = 600                 # 10分钟内的失败尝试
maxretry = 3                   # 最多3次失败即封禁

[sshd]
enabled = true
port = 2299                    # 匹配你的SSH端口
logpath = /var/log/auth.log

sudo systemctl enable --now fail2ban

第二步:防火墙策略配置

防火墙是服务器安全体系的核心。推荐使用UFW(Uncomplicated Firewall)作为iptables的易用前端,或直接使用云服务商提供的安全组功能。

2.1 UFW基础规则

# 启用UFW
sudo ufw enable

# 默认策略:拒绝所有入站,允许所有出站
sudo ufw default deny incoming
sudo ufw default allow outgoing

# 只开放必要端口
sudo ufw allow 2299/tcp comment "SSH管理"
sudo ufw allow 80/tcp comment "HTTP"
sudo ufw allow 443/tcp comment "HTTPS"

# 限制SSH连接速率(防暴力破解)
sudo ufw limit 2299/tcp

# 查看规则
sudo ufw status numbered

# 删除错误规则示例
# sudo ufw delete 3

2.2 利用云服务商安全组

使用云服务商的安全组(如258.hk云服务器安全组)可以实现网络层面的第一道防护。建议策略:

  • SSH端口(2299):仅允许你办公室/家中的固定IP地址访问,而非全网开放
  • Web端口(80/443):对全网开放
  • 数据库端口(3306/5432):仅允许应用服务器内网IP访问,禁止公网暴露
  • 管理后台端口:通过VPN或堡垒机访问,不直接暴露于公网

258.hk云服务器的安全组支持精细化的端口和IP级别访问控制,配合实例内部防火墙形成纵深防御体系。

第三步:系统更新与最小化安装

保持系统更新是防御已知漏洞攻击最有效的手段之一。同时,遵循最小化原则减少攻击面。

# 启用自动安全更新
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure unattended-upgrades  # 选择"Yes"

# 配置仅安装安全更新
sudo vim /etc/apt/apt.conf.d/50unattended-upgrades
# 确保以下行未被注释:
# "${distro_id}:${distro_codename}-security";

# 清理不必要的软件包
sudo apt autoremove --purge -y

# 检查并关闭不必要的服务
sudo systemctl list-units --type=service --state=running
sudo systemctl disable --now <不需要的服务名称>
? 生产环境建议:对于关键业务系统,建议先在测试环境验证更新后再推送到生产环境。258.hk云服务器提供快照备份功能,在重大更新前创建快照,遇到问题可一键恢复。

第四步:内核安全参数优化

通过sysctl调整Linux内核参数,可以防御多种网络层攻击:

# 编辑系统安全配置
sudo vim /etc/sysctl.d/99-security.conf

# 防止SYN洪水攻击
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 2048
net.ipv4.tcp_synack_retries = 2

# 禁用IP源路由(防IP欺骗)
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0

# 启用反向路径过滤(防IP欺骗)
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.default.rp_filter = 1

# 忽略ICMP重定向(防中间人攻击)
net.ipv4.conf.all.accept_redirects = 0
net.ipv6.conf.all.accept_redirects = 0

# 记录可疑包(martian packets)
net.ipv4.conf.all.log_martians = 1

# 应用配置
sudo sysctl --system

第五步:入侵检测系统部署

在防火墙等被动防御措施的基础上,部署入侵检测系统(IDS)可以主动发现和响应安全威胁。

# 安装AIDE(文件完整性监控)
sudo apt install aide -y
sudo aideinit
sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db

# 配置定期检查(每天凌晨3点)
sudo vim /etc/cron.d/aide-check
# 添加:
# 0 3 * * * root /usr/bin/aide.wrapper --check | mail -s "AIDE Report" admin@example.com

# 安装RKHunter(Rootkit检测)
sudo apt install rkhunter -y
sudo rkhunter --update
sudo rkhunter --check --skip-keypress

# 配置每日自动扫描
sudo vim /etc/cron.daily/rkhunter
# 添加扫描命令并配置邮件通知

第六步:Web应用层防护(WAF)

网络层的防火墙无法防御SQL注入、XSS跨站脚本、CSRF等应用层攻击。部署WAF(Web应用防火墙)是Web服务器安全防护的关键环节。

6.1 开源方案:ModSecurity + OWASP规则

# 安装ModSecurity with Nginx
sudo apt install libmodsecurity3 nginx-module-modsecurity -y

# 下载OWASP核心规则集
cd /etc/nginx
sudo git clone https://github.com/coreruleset/coreruleset
sudo cp coreruleset/crs-setup.conf.example coreruleset/crs-setup.conf

# 配置Nginx
sudo vim /etc/nginx/modsecurity.conf
# SecRuleEngine On
# SecAuditEngine RelevantOnly

6.2 生产级方案:258.hk WAF防火墙

对于生产环境,自建WAF面对几个挑战:规则库需要持续更新、性能优化复杂(ModSecurity可能增加30-50%延迟)、误报需要专业调优。258.hk WAF防火墙(200元/月起)提供了一站式解决方案:

  • 内置OWASP Top 10防护规则,自动更新
  • 智能Bot检测与管理(区分搜索引擎和恶意爬虫)
  • CC攻击防护和速率限制
  • 自定义规则引擎,支持精确匹配和正则表达式
  • 实时攻击可视化仪表盘
  • 零性能损耗(云端过滤,源站无额外负载)

对于电商、金融、SaaS等高安全需求场景,搭配258.hk SSL证书实现端到端HTTPS加密,构建完整的Web安全防线。

第七步:日志审计与监控告警

安全的最后一道防线是"事后可追溯"。完善的日志收集和监控体系,可以让你在安全事件发生后快速定位原因、评估影响范围。

# 检查关键日志配置
sudo vim /etc/rsyslog.conf

# 确保以下日志被记录:
# auth,authpriv.*    /var/log/auth.log      (认证日志)
# kern.*             /var/log/kern.log      (内核日志)
# cron.*             /var/log/cron.log      (定时任务)

# 配置日志转发(集中到日志服务器)
*.* @log-server.example.com:514

# 安装监控告警
sudo apt install monit -y
sudo vim /etc/monit/monitrc
# 配置CPU、内存、磁盘、服务状态监控及邮件告警
sudo systemctl enable --now monit

总结:纵深防御,层层设防

安全不是单一技术,而是一套系统化的纵深防御体系。通过本文的7步安全加固教程,你的服务器将从裸机状态构建起多层防护:

L1SSH密钥认证 + Fail2Ban → 防暴力破解
L2UFW + 安全组 → 网络层访问控制
L3自动安全更新 + 最小化安装 → 减少漏洞面
L4Kernel参数加固 → 防御网络层攻击
L5AIDE + RKHunter → 入侵检测与文件完整性
L6WAF防火墙 → 应用层防护(SQL注入/XSS)
L7日志审计 + 监控告警 → 事后追溯与实时响应

对于托管在258.hk云服务器上的业务,建议充分利用平台提供的安全产品组合:安全组(免费)+ WAF防火墙(200元/月起)+ SSL证书(200元/月起),配合本文的服务器内部加固措施,构建从前端到后端、从网络到应用的全方位安全屏障。

?️ 了解258.hk安全产品,让专业防护为你的业务保驾护航。

img

2026-07-10

本文地址:

258云申明:本文内容由互联网用户贡献,该文观点仅代表作者,本站不拥有所有权,不承担相关法律责任。如发现有侵权/违规的内容,请联系我们