
1. 安装操作系统(通过 dd 系统重装)
要重新安装你的 VPS 操作系统,可以使用这个简单快捷的 dd 系统安装教程:DD教程
在 VPS 上执行以下命令下载安装脚本:
curl -O https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh || wget -O reinstall.sh $_
然后运行脚本:
bash reinstall.sh
接着输入以下命令选择系统版本安装(例如 Debian 或 Ubuntu):
bash reinstall.sh debian # 或者 ubuntu 24.04
你可以根据需要选择相应的系统版本。如果不加版本号,默认会安装最新版。例如,
bash reinstall.sh ubuntu会安装最新的 Ubuntu 系统。
安装过程中,系统会提示你设置密码,输入一个 20位以上的复杂密码 并确认。安装完成后,输入 reboot 重启服务器,安装完成后你就可以用新密码登录了。
2. 修改 SSH 默认端口为 60220
默认情况下,SSH 使用端口 22。为了提高安全性,我们将其改为 60220。步骤如下:
禁用 ssh.socket,启用 ssh 服务:
sudo systemctl disable --now ssh.socket
sudo systemctl enable --now ssh
sudo systemctl restart ssh
修改 SSH 配置文件 /etc/ssh/sshd_config:
找到 #Port 22,去掉注释并添加端口 60220:
Port 22
Port 60220
保存并退出。
放行 60220 端口:
你可以选择使用 UFW 或 iptables 来放行端口 60220:
- 使用 UFW:
sudo ufw allow 60220/tcp - 使用
iptables:sudo iptables -A INPUT -p tcp --dport 60220 -j ACCEPT sudo iptables-save > /etc/iptables/rules.v4
重启 SSH 服务:
sudo systemctl restart ssh
然后,你可以通过 ssh -p 60220 使用新端口连接服务器。
确认可以用新端口连接后,回到sshd_config配置文件,删除 Port 22,只保留 Port 60220。
3. 安装 Fail2Ban 防止暴力破解
安装 Fail2Ban:
sudo apt update
sudo apt install fail2ban rsyslog -y
rsyslog 用于确保日志能够正常生成,供 Fail2Ban 使用。
启动 Fail2Ban 和 rsyslog 服务:
sudo systemctl enable --now fail2ban
sudo systemctl enable --now rsyslog
检查服务状态:
sudo systemctl status fail2ban
sudo systemctl status rsyslog
配置 Fail2Ban:
编辑 /etc/fail2ban/jail.local:
sudo nano /etc/fail2ban/jail.local
粘贴以下配置,并将 60220 改为你的 SSH 端口:
[sshd]
ignoreip = 127.0.0.1/8
enabled = true
filter = sshd
port = 60220
maxretry = 3
findtime = 300
bantime = 86400
banaction = ufw
logpath = /var/log/auth.log
配置说明:
enabled = true:启用 SSH 防护。port = 60220:指定 SSH 端口。maxretry = 3:3 次失败后封禁。findtime = 300:在 300 秒内统计失败尝试。bantime = 86400:封禁时间为 86400 秒(1 天)。
重启 Fail2Ban 服务:
sudo systemctl restart fail2ban
管理 Fail2Ban:
- 查看 Fail2Ban 状态:
sudo systemctl status fail2ban - 查看日志:
sudo tail -f /var/log/fail2ban.log - 查询封禁情况:
sudo fail2ban-client status sshd - 手动解封 IP:
sudo fail2ban-client unban <IP 地址>
其他常见问题:
- 配置文件检查:如果 Fail2Ban 启动失败,检查配置文件语法:
sudo fail2ban-client -t - 重启
rsyslog服务:如果日志不更新,重启rsyslog服务:sudo systemctl restart rsyslog
4. 创建新用户并禁用 root 登录
创建新用户:
sudo adduser newuser
按照提示设置密码。
将新用户添加到 sudo 用户组:
sudo usermod -aG sudo newuser
现在,你可以使用新用户登录。
禁用 root 登录:
- 编辑
/etc/ssh/sshd_config文件:sudo nano /etc/ssh/sshd_config - 找到并修改以下行:
PermitRootLogin no - 保存并退出,然后重启 SSH 服务:
sudo systemctl restart ssh
为什么创建新用户:
-
在 VPS 或任何 Linux 系统中,使用
root用户进行日常管理工作存在一定的风险。为了提升系统的安全性、稳定性和可管理性,比较推荐创建普通用户,并仅在需要时授予他们管理员权限。这样做有以下几个重要的好处:-
安全性提升:通过禁用
root用户直接登录,减少了暴力破解攻击的风险。同时,普通用户的权限通常较低,即便密码被破解,也不会轻易对系统造成重大损害。 -
误操作减少:普通用户无法执行可能破坏系统的高权限操作。即使发生误操作,也仅限于他们自己权限范围内,不会影响整个系统。
-
精细化权限管理:通过普通用户和
sudo权限的组合,你可以精确控制每个用户能执行的操作,确保他们只能访问与自己职责相关的资源。 -
便于日志追踪和审计:每个用户的操作都会被单独记录,你可以方便地追踪到具体是哪个用户执行了哪些操作,便于管理和审计。
-
系统稳定性:使用多个用户来隔离不同任务,降低了攻击者一旦侵入某个服务后,获取整个系统权限的风险。
-
支持自动化任务和脚本:为自动化工具或脚本创建专门的用户,方便管理定期任务,如备份、更新等,并且避免暴露给系统的敏感权限。
-
0