按基础系统加固 → 网络层防护 → 服务与应用安全 → 日志审计 → 应急运维分层整理,可直接落地,适合线上服务器(CentOS / Debian /openEuler/ Ubuntu)。
一、系统基础加固(最优先做)
1. 用户与账号安全
禁用 root 远程登录
# /etc/ssh/sshd_config PermitRootLogin no重启 sshd:
systemctl restart sshd使用普通账号登录,sudo 提权,不要日常用 root 操作;移除无用账号,锁定闲置账号:
usermod -L username强密码策略,安装 pam_cracklib,设置密码长度、复杂度、过期时间;禁止空密码。
限制 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 不要设置过于严格,防止真实用户误封。
三、服务与应用安全
最小化安装:上线服务器只装业务必需软件,删除无用服务(telnet、ftp、rsh 等老旧明文协议)。
所有服务监听地址:不要
0.0.0.0,能绑定内网 IP 就绑定内网 IP;数据库、Redis、MQ 严禁直接暴露公网。禁用不必要的协议:Telnet、FTP、POP3 等明文协议一律禁用,改用 SSH、SFTP。
应用权限最小化:Web 服务、Java 进程不要 root 运行,用专用低权限账号;网站目录禁止 777 权限。
敏感服务加固
Redis:设置密码,禁止外网访问,rename 危险命令
MySQL/PG:禁用 root 远程访问,强密码,开启连接限制
TLS 加密:Web 服务、API 使用 HTTPS,禁用 TLS1.0/1.1,只保留 TLS1.2/1.3,使用强加密套件。
四、日志、审计与监控
开启系统审计 auditd,记录关键操作:账号变更、文件修改、sudo 执行。
systemctl enable --now auditd
审计规则记录:/etc/audit/rules.d/ 2. 集中日志收集:rsyslog /journald,把系统日志、Nginx、应用日志推送到 ELK/Loki,日志不要存在本机,防止入侵后被删日志。 3. 关键监控告警
SSH 登录事件(异地登录告警)
防火墙封禁事件
CPU / 连接数突增(可能 CC 攻击)
新增用户、sudo 执行记录
限制日志权限,防止普通用户读取敏感日志。
五、入侵防御与运维规范
端口扫描:定期用
nmap对内网扫描,检查是否意外开放端口。恶意文件查杀:clamav 做病毒扫描;rootkit 检查
rkhunter/chkrootkit。禁止直接公网暴露管理端口:
方案 A:SSH 端口不使用默认 22 端口(降低扫描,不是根治)
方案 B:跳板机(堡垒机),所有运维先登录堡垒机再访问内网服务器
方案 C:VPN 接入内网,管理端口仅 VPN 网段可访问
定期备份:系统配置、数据库异地备份,备份文件权限收紧,定期验证备份可用性。
文件完整性校验:
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,转载请注明出处。
原文链接
欢迎访问 小易撩挨踢