最后更新于:2026年06月

一台裸奔的 VPS 就像一扇没有锁的门——任何人都可以尝试闯入。根据统计,一台新部署的 Linux VPS 在上线后的 24 小时内,平均会收到 数千次 SSH 登录尝试,其中大部分是自动化脚本发起的暴力破解攻击。
本文将从 SSH 安全配置、Fail2ban 自动封禁、防火墙策略、端口敲门(Port Knocking)等多个维度,帮你把 VPS 打造为坚不可摧的堡垒。
🧭 VPS 安全威胁分析
常见攻击类型
┌──────────────────────────────────────────────────────────┐
│ VPS 常见安全威胁 │
│ │
│ 1. SSH 暴力破解 │
│ - 自动化脚本尝试常见用户名/密码组合 │
│ - 针对 root 用户的高频攻击 │
│ - 一旦成功,攻击者获得完整控制权 │
│ │
│ 2. 端口扫描与漏洞探测 │
│ - 扫描开放端口,寻找可利用的服务 │
│ - 针对特定版本软件的已知漏洞 │
│ - 未更新的软件包存在安全风险 │
│ │
│ 3. DDoS 攻击 │
│ - 消耗带宽和系统资源 │
│ - 导致服务不可用 │
│ │
│ 4. 恶意软件与挖矿程序 │
│ - 利用漏洞植入恶意程序 │
│ - 消耗 CPU 资源进行挖矿 │
│ │
│ 5. 数据泄露 │
│ - 配置文件中存储明文密码 │
│ - 敏感日志未加密 │
│ │
│ 6. 权限提升攻击 │
│ - 从普通用户提升到 root │
│ - 利用内核或软件漏洞 │
└──────────────────────────────────────────────────────────┘安全加固检查清单
✅ 必须完成:
□ 禁用 root SSH 登录
□ 使用 SSH 密钥认证,禁用密码登录
□ 更改 SSH 默认端口(22 → 其他)
□ 安装并配置 Fail2ban
□ 配置防火墙(UFW/firewalld/iptables)
□ 定期更新系统软件包
□ 设置强密码策略
□ 启用系统自动更新
⚠️ 建议完成:
□ 配置端口敲门(Port Knocking)
□ 安装入侵检测系统(IDS)
□ 配置日志审计
□ 设置文件完整性监控
□ 启用 SELinux/AppArmor
□ 配置 SSH 超时断开
□ 使用双因素认证(2FA)
□ 定期备份配置文件🔐 SSH 安全配置
1. 禁用 root 登录
root 用户是攻击者的首要目标。首先创建一个普通用户,然后禁用 root 的 SSH 登录:
# 创建新用户(以 admin 为例)
adduser admin
# 设置强密码
passwd admin
# 将用户添加到 sudo 组(赋予管理员权限)
usermod -aG sudo admin # Debian/Ubuntu
usermod -aG wheel admin # CentOS/RHEL
# 验证 sudo 权限
su - admin
sudo whoami
# 应输出: root
# 切换到新用户,测试 SSH 登录
ssh admin@你的VPS_IP2. SSH 密钥认证
密钥认证比密码认证更安全,且无法被暴力破解:
# 在本地电脑上生成密钥对(推荐 Ed25519)
ssh-keygen -t ed25519 -C "your_email@example.com"
# 或使用 RSA(兼容性更好)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# 密钥文件位置:
# ~/.ssh/id_ed25519 ← 私钥(保密)
# ~/.ssh/id_ed25519.pub ← 公钥(上传到 VPS)
# 将公钥上传到 VPS
ssh-copy-id -i ~/.ssh/id_ed25519.pub admin@你的VPS_IP
# 或手动上传
cat ~/.ssh/id_ed25519.pub | ssh admin@VPS_IP "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
# 测试密钥登录
ssh admin@你的VPS_IP
# 应无需输入密码即可登录3. SSH 配置文件优化
编辑 /etc/ssh/sshd_config:
# 备份原配置
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
# 编辑配置
sudo nano /etc/ssh/sshd_config关键配置项:
# ============== 基础安全配置 ==============
# 更改默认端口(避开自动化扫描)
Port 2222 # 或其他非标准端口(如 443、8022)
# 禁止 root 登录
PermitRootLogin no
# 强制使用密钥认证
PubkeyAuthentication yes
# 禁用密码认证(密钥配置完成后)
PasswordAuthentication no
PermitEmptyPasswords no
# 禁用挑战响应认证
ChallengeResponseAuthentication no
# 禁用 PAM 认证(可选,减少攻击面)
UsePAM no
# ============== 连接控制 ==============
# 限制登录尝试次数
MaxAuthTries 3
# 限制最大会话数
MaxSessions 2
# 登录超时(秒)
LoginGraceTime 60
# 空闲超时断开
ClientAliveInterval 300
ClientAliveCountMax 2
# ============== 用户限制 ==============
# 只允许特定用户登录
AllowUsers admin
# 或允许特定组
AllowGroups sudo wheel
# 禁止特定用户
DenyUsers root test guest
# ============== 加密与协议 ==============
# 只使用 SSH 协议版本 2
Protocol 2
# 指定加密算法(推荐)
KexAlgorithms curve25519-sha256@libssh.org,diffie-hellman-group-exchange-sha256
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
# ============== 其他安全选项 ==============
# 禁用 X11 转发
X11Forwarding no
# 禁用端口转发(如果不需要)
AllowTcpForwarding no
# 禁用代理转发
AllowAgentForwarding no
# 禁用 SFTP(可选)
# Subsystem sftp /usr/lib/openssh/sftp-server重启 SSH 服务:
# 检查配置语法
sudo sshd -t
# 重启 SSH 服务
sudo systemctl restart sshd
# 或
sudo systemctl restart ssh
# 验证服务状态
sudo systemctl status sshd4. SSH 双因素认证(可选)
使用 Google Authenticator 或类似工具为 SSH 增加 2FA:
# 安装 libpam-google-authenticator
sudo apt install libpam-google-authenticator
# 为用户配置 2FA
google-authenticator
# 按提示回答:
# Do you want authentication tokens to be time-based? y
# Do you want me to update your ".google_authenticator" file? y
# ... 记录生成的密钥和备用码
# 编辑 SSH PAM 配置
sudo nano /etc/pam.d/sshd
# 添加一行:
auth required pam_google_authenticator.so
# 编辑 SSH 配置
sudo nano /etc/ssh/sshd_config
# 添加:
ChallengeResponseAuthentication yes
AuthenticationMethods publickey,keyboard-interactive
# 重启 SSH
sudo systemctl restart sshd🛡️ Fail2ban:自动封禁暴力破解
Fail2ban 工作原理
┌──────────────────────────────────────────────────────────┐
│ Fail2ban 工作流程 │
│ │
│ 1. 监控日志文件 │
│ - /var/log/auth.log (SSH 登录日志) │
│ - /var/log/nginx/access.log (Web 服务日志) │
│ │
│ 2. 检测失败模式 │
│ - SSH 登录失败 │
│ - HTTP 401/403 响应 │
│ │
│ 3. 计数失败次数 │
│ - 达到阈值(如 5 次)触发封禁 │
│ │
│ 4. 添加防火墙规则 │
│ - iptables DROP/REJECT │
│ - 封禁时间:10 分钟到永久 │
│ │
│ 5. 自动解封 │
│ - 封禁时间到期后自动移除规则 │
└──────────────────────────────────────────────────────────┘安装 Fail2ban
# Debian/Ubuntu
sudo apt update
sudo apt install -y fail2ban
# CentOS/RHEL
sudo yum install -y epel-release
sudo yum install -y fail2ban
# 启动并启用
sudo systemctl enable --now fail2ban
sudo systemctl status fail2banSSH Jail 配置
创建自定义配置文件 /etc/fail2ban/jail.local(不要直接修改 jail.conf):
sudo nano /etc/fail2ban/jail.local# ============== 全局默认配置 ==============
[DEFAULT]
# 封禁时间(秒),默认 10 分钟
bantime = 600
# 封禁时间增量(每次封禁后加倍)
bantime.increment = true
bantime.multipliers = 1 2 4 8 16 32 64
bantime.maxtime = 86400 # 最大封禁 24 小时
# 查找时间窗口(秒)
findtime = 600
# 最大失败次数
maxretry = 5
# 后端日志格式
backend = auto
# 封禁动作(iptables)
banaction = iptables-multiport
banaction_allports = iptables-allports
# ============== SSH Jail ==============
[sshd]
enabled = true
port = ssh,2222 # 包含自定义端口
filter = sshd
logpath = /var/log/auth.log
/var/log/secure # CentOS/RHEL
maxretry = 3
findtime = 600
bantime = 3600 # 1 小时
# ============== SSH-DDoS Jail ==============
[sshd-ddos]
enabled = true
port = ssh,2222
filter = sshd-ddos
logpath = /var/log/auth.log
maxretry = 2
bantime = 86400 # 24 小时
# ============== Web 服务 Jail(可选)=============
[nginx-http-auth]
enabled = true
port = http,https
filter = nginx-http-auth
logpath = /var/log/nginx/error.log
maxretry = 3
bantime = 600
[nginx-limit-req]
enabled = true
port = http,https
filter = nginx-limit-req
logpath = /var/log/nginx/error.log
maxretry = 5
bantime = 600
[nginx-botsearch]
enabled = true
port = http,https
filter = nginx-botsearch
logpath = /var/log/nginx/access.log
maxretry = 2
bantime = 86400自定义 Filter
创建 /etc/fail2ban/filter.d/sshd-custom.conf:
[Definition]
failregex = ^%(__prefix_line)sFailed password for <F-USER>(?:invalid user |)<F-ALT_USER>(?:(?:from <HOST>)?\S+)?\s*port \d+\s*ssh2\s*$
^%(__prefix_line)sReceived disconnect from <HOST>: 11: \[preauth\]\s*$
^%(__prefix_line)sConnection closed by <HOST> \[preauth\]\s*$
^%(__prefix_line)sDid not receive identification string from <HOST>\s*$
ignoreregex =Fail2ban 常用命令
# 查看所有 Jail 状态
sudo fail2ban-client status
# 查看特定 Jail 详情
sudo fail2ban-client status sshd
# 手动封禁 IP
sudo fail2ban-client set sshd banip 1.2.3.4
# 手动解封 IP
sudo fail2ban-client set sshd unbanip 1.2.3.4
# 查看封禁日志
sudo tail -f /var/log/fail2ban.log
# 测试 Filter 规则
sudo fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf
# 重启 Fail2ban
sudo systemctl restart fail2ban🔥 防火墙配置
UFW(Ubuntu/Debian 推荐)
UFW 是最简单易用的防火墙工具:
# 安装(通常已预装)
sudo apt install -y ufw
# ============== 基础配置 ==============
# 设置默认策略
sudo ufw default deny incoming
sudo ufw default allow outgoing
# 允许 SSH(使用自定义端口)
sudo ufw allow 2222/tcp comment 'SSH'
# 允许 HTTP/HTTPS(如果需要)
sudo ufw allow 80/tcp comment 'HTTP'
sudo ufw allow 443/tcp comment 'HTTPS'
# 允许代理端口
sudo ufw allow 443/udp comment 'WireGuard/Hysteria2'
# ============== 高级规则 ==============
# 只允许特定 IP 访问 SSH
sudo ufw allow from 114.114.114.114 to any port 2222 proto tcp comment 'SSH from trusted IP'
# 拒绝特定 IP
sudo ufw deny from 1.2.3.4
# 限制连接速率(防止 DDoS)
sudo ufw limit 2222/tcp
# ============== 启用防火墙 ==============
# 检查规则
sudo ufw show added
# 启用(注意:确保 SSH 规则已添加)
sudo ufw enable
# 查看状态
sudo ufw status verbose
# ============== 日志配置 ==============
# 启用日志
sudo ufw logging on
sudo ufw logging medium # low/medium/high
# 查看日志
sudo tail -f /var/log/ufw.logfirewalld(CentOS/RHEL/Fedora)
# 安装(通常已预装)
sudo yum install -y firewalld
# 启动并启用
sudo systemctl enable --now firewalld
# ============== 基础配置 ==============
# 查看默认区域
sudo firewall-cmd --get-default-zone
# 添加服务/端口
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --permanent --add-port=443/udp
# 或使用预定义服务
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
# ============== 富规则(高级)=============
# 只允许特定 IP 访问 SSH
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="114.114.114.114" port protocol="tcp" port="2222" accept'
# 拒绝特定 IP
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="1.2.3.4" reject'
# 限制连接速率
sudo firewall-cmd --permanent --add-rich-rule='rule service name="ssh" limit value="3/m" accept'
# ============== 应用配置 ==============
# 重载配置
sudo firewall-cmd --reload
# 查看所有规则
sudo firewall-cmd --list-all
# 查看富规则
sudo firewall-cmd --list-rich-rulesiptables(底层防火墙)
# 查看当前规则
sudo iptables -L -n -v
# ============== 基础规则 ==============
# 允许已建立的连接
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# 允许 SSH
sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
# 允许 HTTP/HTTPS
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 443 -j ACCEPT
# 允许本地回环
sudo iptables -A INPUT -i lo -j ACCEPT
# 拒绝其他入站
sudo iptables -A INPUT -j DROP
# ============== 高级规则 ==============
# 限制 SSH 连接速率
sudo iptables -A INPUT -p tcp --dport 2222 -m conntrack --ctstate NEW -m recent --set
sudo iptables -A INPUT -p tcp --dport 2222 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
# 只允许特定 IP
sudo iptables -A INPUT -p tcp --dport 2222 -s 114.114.114.114 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 2222 -j DROP
# ============== 保存规则 ==============
# Debian/Ubuntu
sudo apt install -y iptables-persistent
sudo netfilter-persistent save
# CentOS/RHEL
sudo yum install -y iptables-services
sudo service iptables save
# 或手动保存
sudo iptables-save > /etc/iptables/rules.v4🚪 端口敲门(Port Knocking)
什么是端口敲门?
端口敲门是一种隐蔽的访问控制技术:只有按照特定顺序"敲门"(连接特定端口),防火墙才会打开真正的服务端口。
┌──────────────────────────────────────────────────────────┐
│ 端口敲门工作原理 │
│ │
│ 正常情况: │
│ SSH 端口 2222 对所有 IP 关闭 │
│ │
│ 敲门流程: │
│ 1. 客户端连接端口 7000 → 防火墙记录 │
│ 2. 客户端连接端口 8000 → 防火墙记录 │
│ 3. 客户端连接端口 9000 → 防火墙记录 │
│ 4. 顺序正确!防火墙为该 IP 打开 2222 端口 30 秒 │
│ 5. 客户端在 30 秒内连接 SSH │
│ │
│ 敲门失败: │
│ - 顺序错误 → 无响应 │
│ - 时间超时 → 无响应 │
│ - 攻击者无法发现 SSH 端口 │
└──────────────────────────────────────────────────────────┘knockd 配置
# 安装 knockd
sudo apt install -y knockd
# 编辑配置
sudo nano /etc/knockd.conf[options]
UseSyslog
logfile = /var/log/knockd.log
[openSSH]
sequence = 7000,8000,9000
seq_timeout = 5
command = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 2222 -j ACCEPT
tcpflags = syn
[closeSSH]
sequence = 9000,8000,7000
seq_timeout = 5
command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 2222 -j ACCEPT
tcpflags = syn
# 自动关闭(可选)
[autoCloseSSH]
sequence = 7000,8000,9000
seq_timeout = 5
command = /sbin/iptables -A INPUT -s %IP% -p tcp --dport 2222 -j ACCEPT
stop_command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 2222 -j ACCEPT
cmd_timeout = 30
tcpflags = syn启动 knockd:
# 启用并启动
sudo systemctl enable --now knockd
# 检查状态
sudo systemctl status knockd
# 查看日志
sudo tail -f /var/log/knockd.log客户端敲门
# 安装 knock 客户端
sudo apt install -y knockd
# 敲门打开 SSH
knock VPS_IP 7000 8000 9000
# 然后连接 SSH
ssh -p 2222 admin@VPS_IP
# 使用完毕后关门(可选)
knock VPS_IP 9000 8000 7000或使用脚本自动化:
#!/bin/bash
# knock_ssh.sh
VPS_IP="你的VPS_IP"
SSH_PORT="2222"
KNOCK_PORTS="7000 8000 9000"
echo "敲门..."
knock "$VPS_IP" $KNOCK_PORTS
echo "等待 2 秒..."
sleep 2
echo "连接 SSH..."
ssh -p "$SSH_PORT" admin@"$VPS_IP"🔄 系统更新与漏洞管理
自动安全更新
# Debian/Ubuntu
sudo apt install -y unattended-upgrades
# 配置自动更新
sudo dpkg-reconfigure -plow unattended-upgrades
# 选择 "Yes"
# 编辑配置
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
# 确保以下内容启用:
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}";
"${distro_id}:${distro_codename}-security";
"${distro_id}ESMApps:${distro_codename}-apps-security";
"${distro_id}ESMInfra:${distro_codename}-infra-security";
};
# 自动清理
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Unattended-Upgrade::Automatic-Reboot "false";
# CentOS/RHEL
sudo yum install -y yum-cron
# 编辑配置
sudo nano /etc/yum/yum-cron.conf
update_cmd = security
apply_updates = yes手动更新流程
# Debian/Ubuntu
sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y
sudo apt autoclean
# CentOS/RHEL
sudo yum update -y
sudo yum clean all
# 检查可重启的服务
sudo needrestart # Debian/Ubuntu
# 查看安全公告
# Ubuntu: https://ubuntu.com/security/notices
# CentOS: https://access.redhat.com/security/security-updates/📊 安全审计与监控
日志审计
# SSH 登录日志
sudo tail -f /var/log/auth.log # Debian/Ubuntu
sudo tail -f /var/log/secure # CentOS/RHEL
# 查看成功登录
sudo grep "Accepted password" /var/log/auth.log
sudo grep "Accepted publickey" /var/log/auth.log
# 查看失败登录
sudo grep "Failed password" /var/log/auth.log
# 统计失败登录次数
sudo grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr
# 系统日志
sudo tail -f /var/log/syslog
sudo journalctl -f
# 查看最近的安全事件
sudo journalctl -p err -n 50入侵检测(可选)
# 安装 OSSEC 或 Wazuh(开源 IDS)
# Wazuh 更现代,推荐使用
# 添加仓库
curl -sO https://packages.wazuh.com/4.7/wazuh-install.sh
# 安装
sudo bash wazuh-install.sh -a
# 或使用 AIDE(文件完整性检查)
sudo apt install -y aide
# 初始化数据库
sudo aideinit
# 检查文件变化
sudo aide --check安全扫描
# 使用 Lynis 进行安全审计
sudo apt install -y lynis
# 运行审计
sudo lynis audit system
# 查看报告
sudo less /var/log/lynis-report.dat
# 使用 OpenVAS(专业漏洞扫描)
# 需要单独部署,参考官方文档🔍 故障排查手册
问题 1:SSH 无法登录
# 检查 SSH 服务状态
sudo systemctl status sshd
# 检查端口监听
sudo ss -tlnp | grep 2222
# 检查防火墙规则
sudo ufw status
sudo iptables -L -n | grep 2222
# 检查 Fail2ban 封禁
sudo fail2ban-client status sshd
# 查看日志
sudo tail -50 /var/log/auth.log
# 常见原因:
# 1. 端口未开放 → 添加防火墙规则
# 2. IP 被封禁 → fail2ban-client unbanip
# 3. 密码认证禁用但密钥未配置 → 临时启用密码或配置密钥
# 4. SSH 配置错误 → sshd -t 检查语法问题 2:Fail2ban 不工作
# 检查服务状态
sudo systemctl status fail2ban
# 检查日志
sudo tail -f /var/log/fail2ban.log
# 测试 Filter
sudo fail2ban-regex /var/log/auth.log /etc/fail2ban/filter.d/sshd.conf
# 检查 Jail 配置
sudo fail2ban-client -d | grep sshd
# 常见原因:
# 1. Filter 规则不匹配日志格式 → 调整 failregex
# 2. 日志路径错误 → 检查 logpath
# 3. backend 配置错误 → 改为 auto 或 systemd
# 4. iptables 规则冲突 → 检查现有规则问题 3:防火墙规则不生效
# UFW
sudo ufw status numbered
sudo ufw reload
# firewalld
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
# iptables
sudo iptables -L -n -v
sudo iptables-save
# 检查规则顺序(iptables 按顺序匹配)
# 确保 ACCEPT 规则在 DROP 之前问题 4:端口敲门失败
# 检查 knockd 服务
sudo systemctl status knockd
# 查看日志
sudo tail -f /var/log/knockd.log
# 测试敲门
knock -v VPS_IP 7000 8000 9000
# 检查 iptables 规则是否添加
sudo iptables -L -n | grep 2222
# 常见原因:
# 1. 敲门端口未开放 → 需要在防火墙中放行敲门端口
# 2. knockd 配置错误 → 检查 sequence 和 command
# 3. 时间超时 → 增加 seq_timeout
# 4. TCP flags 不匹配 → 确保使用 syn📋 完整安全加固流程
新 VPS 上线检查清单
Day 0(部署当天):
□ 创建普通用户,添加 sudo 权限
□ 配置 SSH 密钥认证
□ 禁用 root SSH 登录
□ 更改 SSH 默认端口
□ 安装并配置 Fail2ban
□ 配置防火墙(UFW/firewalld)
□ 更新所有软件包
□ 配置自动安全更新
Day 1(部署次日):
□ 测试 SSH 密钥登录
□ 验证 Fail2ban 工作正常
□ 检查防火墙规则
□ 配置日志监控
□ 安装基础监控工具(node_exporter)
Day 7(一周后):
□ 审查 SSH 登录日志
□ 检查 Fail2ban 封禁统计
□ 验证自动更新工作正常
□ 配置备份策略
每月:
□ 检查系统更新
□ 审查安全日志
□ 检查证书有效期
□ 更新 Fail2ban 规则
□ 检查防火墙规则有效性
每季度:
□ 运行 Lynis 安全审计
□ 更新 SSH 配置(加密算法)
□ 检查用户权限
□ 清理旧日志和备份结语
VPS 安全加固不是一次性工作,而是持续的过程。从 SSH 配置到 Fail2ban,从防火墙到端口敲门,每一层防护都在为你的服务器增加一道防线。
总结要点:
- ✅ SSH 安全:禁用 root、密钥认证、改端口、限制用户
- ✅ Fail2ban:自动封禁暴力破解,支持多种服务
- ✅ 防火墙:UFW/firewalld/iptables,只开放必要端口
- ✅ 端口敲门:隐蔽 SSH 端口,增加访问门槛
- ✅ 自动更新:unattended-upgrades,及时修复漏洞
- ✅ 日志审计:定期检查登录日志,发现异常
- ✅ 安全扫描:Lynis/Wazuh,定期审计系统
记住:安全是一个层级系统,没有单一的"银弹"。多层防护叠加,才能构建真正坚固的防线。
愿你的 VPS 永远安全,远离入侵!🛡️
