<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://md5.pw/index.php?action=history&amp;feed=atom&amp;title=%E6%90%AC%E7%93%A6%E5%B7%A5_VPS_%E5%AE%89%E5%85%A8%E5%9F%BA%E7%BA%BF%E5%8A%A0%E5%9B%BA%EF%BC%88Debian%2FUbuntu%EF%BC%89%E4%B8%80%E9%94%AE%E5%AE%A1%E8%AE%A1%E4%B8%8E%E6%9C%80%E5%B0%8F%E5%8C%96%E6%9A%B4%E9%9C%B2%E9%9D%A2%E6%8C%87%E5%8D%97</id>
	<title>搬瓦工 VPS 安全基线加固（Debian/Ubuntu）一键审计与最小化暴露面指南 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://md5.pw/index.php?action=history&amp;feed=atom&amp;title=%E6%90%AC%E7%93%A6%E5%B7%A5_VPS_%E5%AE%89%E5%85%A8%E5%9F%BA%E7%BA%BF%E5%8A%A0%E5%9B%BA%EF%BC%88Debian%2FUbuntu%EF%BC%89%E4%B8%80%E9%94%AE%E5%AE%A1%E8%AE%A1%E4%B8%8E%E6%9C%80%E5%B0%8F%E5%8C%96%E6%9A%B4%E9%9C%B2%E9%9D%A2%E6%8C%87%E5%8D%97"/>
	<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=%E6%90%AC%E7%93%A6%E5%B7%A5_VPS_%E5%AE%89%E5%85%A8%E5%9F%BA%E7%BA%BF%E5%8A%A0%E5%9B%BA%EF%BC%88Debian/Ubuntu%EF%BC%89%E4%B8%80%E9%94%AE%E5%AE%A1%E8%AE%A1%E4%B8%8E%E6%9C%80%E5%B0%8F%E5%8C%96%E6%9A%B4%E9%9C%B2%E9%9D%A2%E6%8C%87%E5%8D%97&amp;action=history"/>
	<updated>2026-04-05T14:31:10Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://md5.pw/index.php?title=%E6%90%AC%E7%93%A6%E5%B7%A5_VPS_%E5%AE%89%E5%85%A8%E5%9F%BA%E7%BA%BF%E5%8A%A0%E5%9B%BA%EF%BC%88Debian/Ubuntu%EF%BC%89%E4%B8%80%E9%94%AE%E5%AE%A1%E8%AE%A1%E4%B8%8E%E6%9C%80%E5%B0%8F%E5%8C%96%E6%9A%B4%E9%9C%B2%E9%9D%A2%E6%8C%87%E5%8D%97&amp;diff=1413&amp;oldid=prev</id>
		<title>Smithmikerun：​创建页面，内容为“= 搬瓦工 VPS 安全基线加固（Debian/Ubuntu）一键审计与最小化暴露面指南 =  == 一、文章目标 == 本文用于帮助 BandwagonHost（BWH）用户在不依赖复杂安全套件的情况下，快速完成 VPS 的基础安全加固，降低被扫描、爆破、误配置导致失联的风险。  == 二、适用范围与不适用范围 == &#039;&#039;&#039;适用范围：&#039;&#039;&#039; # 新购 VPS（建议开机后 30 分钟内完成） # 仅有 SSH 远程管理需求…”</title>
		<link rel="alternate" type="text/html" href="https://md5.pw/index.php?title=%E6%90%AC%E7%93%A6%E5%B7%A5_VPS_%E5%AE%89%E5%85%A8%E5%9F%BA%E7%BA%BF%E5%8A%A0%E5%9B%BA%EF%BC%88Debian/Ubuntu%EF%BC%89%E4%B8%80%E9%94%AE%E5%AE%A1%E8%AE%A1%E4%B8%8E%E6%9C%80%E5%B0%8F%E5%8C%96%E6%9A%B4%E9%9C%B2%E9%9D%A2%E6%8C%87%E5%8D%97&amp;diff=1413&amp;oldid=prev"/>
		<updated>2026-02-18T02:46:59Z</updated>

		<summary type="html">&lt;p&gt;创建页面，内容为“= 搬瓦工 VPS 安全基线加固（Debian/Ubuntu）一键审计与最小化暴露面指南 =  == 一、文章目标 == 本文用于帮助 BandwagonHost（BWH）用户在不依赖复杂安全套件的情况下，快速完成 VPS 的基础安全加固，降低被扫描、爆破、误配置导致失联的风险。  == 二、适用范围与不适用范围 == &amp;#039;&amp;#039;&amp;#039;适用范围：&amp;#039;&amp;#039;&amp;#039; # 新购 VPS（建议开机后 30 分钟内完成） # 仅有 SSH 远程管理需求…”&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= 搬瓦工 VPS 安全基线加固（Debian/Ubuntu）一键审计与最小化暴露面指南 =&lt;br /&gt;
&lt;br /&gt;
== 一、文章目标 ==&lt;br /&gt;
本文用于帮助 BandwagonHost（BWH）用户在不依赖复杂安全套件的情况下，快速完成 VPS 的基础安全加固，降低被扫描、爆破、误配置导致失联的风险。&lt;br /&gt;
&lt;br /&gt;
== 二、适用范围与不适用范围 ==&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;适用范围：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# 新购 VPS（建议开机后 30 分钟内完成）&lt;br /&gt;
# 仅有 SSH 远程管理需求的 Debian/Ubuntu 服务器&lt;br /&gt;
# 准备部署网站、代理、监控、自动化任务前的基线准备&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;不适用范围：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# 已有复杂生产业务且变更窗口不足的机器（先做快照再操作）&lt;br /&gt;
# 依赖密码登录且暂未准备公钥的场景&lt;br /&gt;
# 不具备 KiwiVM VNC 登录兜底能力的用户&lt;br /&gt;
&lt;br /&gt;
== 三、变更前准备（强烈建议） ==&lt;br /&gt;
# 在 KiwiVM 创建一次快照&lt;br /&gt;
# 记录当前 SSH 端口、root 密码、已开放端口&lt;br /&gt;
# 打开 KiwiVM 的 VNC（Interactive Shell）页面备用&lt;br /&gt;
&lt;br /&gt;
== 四、5 分钟基础审计（先看现状） ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# 系统信息&lt;br /&gt;
uname -a&lt;br /&gt;
lsb_release -a || cat /etc/os-release&lt;br /&gt;
&lt;br /&gt;
# 监听端口与进程&lt;br /&gt;
ss -tulpen&lt;br /&gt;
&lt;br /&gt;
# 最近登录来源&lt;br /&gt;
last -a | head -n 20&lt;br /&gt;
&lt;br /&gt;
# SSH 当前关键配置&lt;br /&gt;
grep -E &amp;#039;^(Port|PermitRootLogin|PasswordAuthentication|PubkeyAuthentication|MaxAuthTries)&amp;#039; /etc/ssh/sshd_config&lt;br /&gt;
&lt;br /&gt;
# 防火墙状态（若未安装 ufw 会报错，可忽略）&lt;br /&gt;
ufw status verbose || true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;判定建议：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# 若 &amp;lt;code&amp;gt;22&amp;lt;/code&amp;gt; 端口对公网开放且密码登录开启，属于高风险&lt;br /&gt;
# 若出现异常国家/地区登录记录，先改密钥和登录策略&lt;br /&gt;
# 若服务器只用于单应用，不应存在大量无关监听端口&lt;br /&gt;
&lt;br /&gt;
== 五、最小暴露面加固步骤 ==&lt;br /&gt;
=== 步骤 1：创建普通 sudo 管理员 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
adduser opsadmin&lt;br /&gt;
usermod -aG sudo opsadmin&lt;br /&gt;
id opsadmin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;说明：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# 后续尽量不用 root 直连&lt;br /&gt;
# 若你使用的是 Debian 旧版，sudo 组可能是 &amp;lt;code&amp;gt;wheel&amp;lt;/code&amp;gt;，需按实际调整&lt;br /&gt;
&lt;br /&gt;
=== 步骤 2：配置 SSH 公钥登录 ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;在本地执行：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh-keygen -t ed25519 -C &amp;quot;bwh-prod&amp;quot;&lt;br /&gt;
ssh-copy-id -i ~/.ssh/id_ed25519.pub opsadmin@&amp;lt;你的VPSIP&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;服务器侧验证：&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ls -l /home/opsadmin/.ssh/authorized_keys&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 步骤 3：收紧 SSH 配置 ===&lt;br /&gt;
编辑 &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt;，确保以下项：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PermitRootLogin no&lt;br /&gt;
PasswordAuthentication no&lt;br /&gt;
PubkeyAuthentication yes&lt;br /&gt;
MaxAuthTries 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
如需改端口（可选）：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Port 22222&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
应用配置：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sshd -t &amp;amp;&amp;amp; systemctl restart ssh || systemctl restart sshd&lt;br /&gt;
systemctl status ssh --no-pager || systemctl status sshd --no-pager&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 步骤 4：启用 UFW 最小规则集 ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt update &amp;amp;&amp;amp; apt install -y ufw&lt;br /&gt;
&lt;br /&gt;
# 默认拒绝入站，允许出站&lt;br /&gt;
ufw default deny incoming&lt;br /&gt;
ufw default allow outgoing&lt;br /&gt;
&lt;br /&gt;
# 放行 SSH 端口（如果你改了端口，改成对应端口）&lt;br /&gt;
ufw allow 22222/tcp&lt;br /&gt;
&lt;br /&gt;
# 如需网站服务再开放&lt;br /&gt;
# ufw allow 80/tcp&lt;br /&gt;
# ufw allow 443/tcp&lt;br /&gt;
&lt;br /&gt;
ufw enable&lt;br /&gt;
ufw status numbered&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 步骤 5：启用 Fail2ban ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install -y fail2ban&lt;br /&gt;
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
编辑 &amp;lt;code&amp;gt;/etc/fail2ban/jail.local&amp;lt;/code&amp;gt;，至少确认：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[sshd]&lt;br /&gt;
enabled = true&lt;br /&gt;
port = 22222&lt;br /&gt;
maxretry = 5&lt;br /&gt;
findtime = 10m&lt;br /&gt;
bantime = 1h&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
启动与检查：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl enable --now fail2ban&lt;br /&gt;
fail2ban-client status&lt;br /&gt;
fail2ban-client status sshd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 六、一键审计脚本（可重复执行） ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt;/usr/local/bin/bwh-sec-audit.sh &amp;lt;&amp;lt;&amp;#039;SH&amp;#039;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
set -euo pipefail&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;===== 基础信息 =====&amp;quot;&lt;br /&gt;
uname -a&lt;br /&gt;
cat /etc/os-release | sed -n &amp;#039;1,6p&amp;#039;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;\n===== SSH 配置 =====&amp;quot;&lt;br /&gt;
grep -E &amp;#039;^(Port|PermitRootLogin|PasswordAuthentication|PubkeyAuthentication|MaxAuthTries)&amp;#039; /etc/ssh/sshd_config || true&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;\n===== 开放端口 =====&amp;quot;&lt;br /&gt;
ss -tulpen | head -n 50&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;\n===== UFW 状态 =====&amp;quot;&lt;br /&gt;
ufw status verbose || true&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;\n===== Fail2ban 状态 =====&amp;quot;&lt;br /&gt;
fail2ban-client status || true&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;\n===== 最近登录 =====&amp;quot;&lt;br /&gt;
last -a | head -n 15&lt;br /&gt;
SH&lt;br /&gt;
chmod +x /usr/local/bin/bwh-sec-audit.sh&lt;br /&gt;
/usr/local/bin/bwh-sec-audit.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 七、验证清单（变更后必须做） ==&lt;br /&gt;
# 新开终端可用公钥成功登录&lt;br /&gt;
# root 密码登录失败（符合预期）&lt;br /&gt;
# &amp;lt;code&amp;gt;ufw status&amp;lt;/code&amp;gt; 只开放必要端口&lt;br /&gt;
# &amp;lt;code&amp;gt;fail2ban-client status sshd&amp;lt;/code&amp;gt; 正常有 jail&lt;br /&gt;
# KiwiVM VNC 仍可进入系统&lt;br /&gt;
&lt;br /&gt;
== 八、回滚与救援（防止锁死） ==&lt;br /&gt;
若 SSH 断连：&lt;br /&gt;
# 通过 KiwiVM VNC 登录&lt;br /&gt;
# 临时关闭 UFW：&amp;lt;code&amp;gt;ufw disable&amp;lt;/code&amp;gt;&lt;br /&gt;
# 回滚 SSH 配置并重启 ssh 服务&lt;br /&gt;
# 使用本地终端重新验证后再逐步加固&lt;br /&gt;
&lt;br /&gt;
可用回滚命令：&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bad&lt;br /&gt;
# 手动修正后&lt;br /&gt;
sshd -t &amp;amp;&amp;amp; systemctl restart ssh || systemctl restart sshd&lt;br /&gt;
ufw disable&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 九、常见误区 ==&lt;br /&gt;
# 先关密码登录再验证公钥，导致直接失联&lt;br /&gt;
# 改了 SSH 端口但 UFW 未放行新端口&lt;br /&gt;
# 把 &amp;lt;code&amp;gt;PermitRootLogin&amp;lt;/code&amp;gt; 写成错误值导致 sshd 启动失败&lt;br /&gt;
# 误以为快照等于备份，未做异地数据备份&lt;br /&gt;
&lt;br /&gt;
== 十、结论 ==&lt;br /&gt;
对大多数 BWH 用户，完成本指南后可以显著降低 SSH 暴露风险。建议每月执行一次审计脚本，并在重大上线前复查端口、登录策略和封禁策略。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:300 VPS 设置与管理 — VPS Setup and Management]]&lt;/div&gt;</summary>
		<author><name>Smithmikerun</name></author>
	</entry>
</feed>