易君召
发布于 2026-09-16 / 作者:易君召 / 1 阅读
0

Linux 服务器网络安全加固方案

基础系统加固 → 网络层防护 → 服务与应用安全 → 日志审计 → 应急运维分层整理,可直接落地,适合线上服务器(CentOS / Debian /openEuler/ Ubuntu)。

一、系统基础加固(最优先做)

1. 用户与账号安全

  1. 禁用 root 远程登录

    # /etc/ssh/sshd_config
    PermitRootLogin no
    

    重启 sshd:systemctl restart sshd

  2. 使用普通账号登录,sudo 提权,不要日常用 root 操作;移除无用账号,锁定闲置账号:

    usermod -L username
    
  3. 强密码策略,安装 pam_cracklib,设置密码长度、复杂度、过期时间;禁止空密码。

  4. 限制 sudo 权限最小化,不要给 ALL 权限,只开放必要命令。

2. SSH 安全加固(高频攻击入口)

# /etc/ssh/sshd_config
PasswordAuthentication no          # 关闭密码登录,只用密钥
ChallengeResponseAuthentication no
UsePAM yes
X11Forwarding no                   # 关闭X11转发
AllowUsers admin                   # 白名单,只允许指定用户登录
MaxAuthTries 3                     # 最多3次认证失败断开

密钥登录:本地生成 ssh-keygen,公钥放到服务器~/.ssh/authorized_keys,私钥妥善保管。

3. 系统更新

# Debian/Ubuntu
apt update && apt upgrade -y
# CentOS/RHEL/openEuler
yum update -y
  • 开启自动安全更新(只更新安全补丁,避免业务包意外升级)

  • 定期扫描漏洞:dnf check-update / apt-show-versions,配合trivy扫描系统与容器漏洞。

二、网络层防护(防火墙 + 内核参数)

1. 防火墙:最小端口开放原则

优先使用系统原生防火墙 firewalld /ufw,不要裸奔,只放行业务必需端口。

# firewalld示例
systemctl enable --now firewalld
firewall-cmd --add-service=ssh --permanent
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload
# 默认拒绝所有入站流量
firewall-cmd --set-default-zone=drop

云服务器:同时在云厂商安全组做一层外网 ACL,双层防护。

2. sysctl 内核网络安全调优(防 DDoS、IP 欺骗、SYN 洪水)

写入 /etc/sysctl.conf

# 关闭IP转发(不是路由服务器就关)
net.ipv4.ip_forward = 0
# 禁止源路由
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.ipv4.conf.default.accept_redirects = 0
# 防SYN洪水,启用SYN Cookie
net.ipv4.tcp_syncookies = 1
# 降低TCP重试次数
net.ipv4.tcp_syn_retries = 2
net.ipv4.tcp_synack_retries = 2
# 关闭ICMP广播响应,防Smurf攻击
net.ipv4.icmp_echo_ignore_broadcasts = 1
# 记录恶意包错误日志
net.ipv4.icmp_ignore_bogus_error_responses = 1

生效:sysctl -p

3. 防暴力破解

  • fail2ban:监控 ssh、nginx、apache 日志,多次失败自动封禁 IP

# 安装
yum install fail2ban -y
systemctl enable --now fail2ban

配置:设置 ssh 过滤器,5 次失败封禁 IP,封禁时长自定义。

高并发业务注意:fail2ban 不要设置过于严格,防止真实用户误封。

三、服务与应用安全

  1. 最小化安装:上线服务器只装业务必需软件,删除无用服务(telnet、ftp、rsh 等老旧明文协议)。

  2. 所有服务监听地址:不要0.0.0.0,能绑定内网 IP 就绑定内网 IP;数据库、Redis、MQ 严禁直接暴露公网。

  3. 禁用不必要的协议:Telnet、FTP、POP3 等明文协议一律禁用,改用 SSH、SFTP。

  4. 应用权限最小化:Web 服务、Java 进程不要 root 运行,用专用低权限账号;网站目录禁止 777 权限。

  5. 敏感服务加固

    • Redis:设置密码,禁止外网访问,rename 危险命令

    • MySQL/PG:禁用 root 远程访问,强密码,开启连接限制

  6. TLS 加密:Web 服务、API 使用 HTTPS,禁用 TLS1.0/1.1,只保留 TLS1.2/1.3,使用强加密套件。

四、日志、审计与监控

  1. 开启系统审计 auditd,记录关键操作:账号变更、文件修改、sudo 执行。

systemctl enable --now auditd

审计规则记录:/etc/audit/rules.d/ 2. 集中日志收集:rsyslog /journald,把系统日志、Nginx、应用日志推送到 ELK/Loki,日志不要存在本机,防止入侵后被删日志。 3. 关键监控告警

  • SSH 登录事件(异地登录告警)

  • 防火墙封禁事件

  • CPU / 连接数突增(可能 CC 攻击)

  • 新增用户、sudo 执行记录

  1. 限制日志权限,防止普通用户读取敏感日志。

五、入侵防御与运维规范

  1. 端口扫描:定期用nmap对内网扫描,检查是否意外开放端口。

  2. 恶意文件查杀:clamav 做病毒扫描;rootkit 检查 rkhunter / chkrootkit

  3. 禁止直接公网暴露管理端口

    • 方案 A:SSH 端口不使用默认 22 端口(降低扫描,不是根治)

    • 方案 B:跳板机(堡垒机),所有运维先登录堡垒机再访问内网服务器

    • 方案 C:VPN 接入内网,管理端口仅 VPN 网段可访问

  4. 定期备份:系统配置、数据库异地备份,备份文件权限收紧,定期验证备份可用性。

  5. 文件完整性校验AIDE 监控关键系统文件(/etc/passwd、sshd_config、二进制程序),文件被篡改触发告警。

六、网络安全检查清单(上线前自检)

  • root 禁止 ssh 远程登录,SSH 关闭密码登录,使用密钥

  • 防火墙 / 安全组仅开放业务端口,默认拒绝入站

  • 内核 sysctl 安全参数已配置

  • fail2ban 部署,防护 SSH 暴力破解

  • Redis、数据库等中间件不暴露公网,设置密码

  • 所有业务进程以非 root 账号运行

  • auditd 审计开启,日志集中存储

  • 自动安全补丁更新,定期漏洞扫描

  • 堡垒机 / VPN 作为唯一运维入口

  • 定期备份 + 备份恢复演练

七、额外建议(企业级)

  • 网络层面:边界 WAF,流量清洗,内网划分 VLAN,东西向流量隔离;

  • 身份层面:SSH 密钥托管、MFA 多因素认证登录;

  • 合规:等保要求的日志留存、权限审计。


本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。

原文链接 https://www.yijunzhao.cn/archives/linux-server-network-security-hardening-guide

欢迎访问 小易撩挨踢

https://www.yijunzhao.cn/