# 更新软件源并安装必要软件
# 更新软件源 | |
apt update | |
# 安装 / 确保已安装 UFW | |
apt install ufw -y | |
# 安装 Fail2Ban | |
apt install fail2ban -y |
# 修改 SSH 端口为 21126
编辑配置文件:
nano /etc/ssh/sshd_config |
找到
Port 22
Port 21126 |
按
Ctrl+O回车保存,按Ctrl+X退出。
# 停止并禁用 ssh.socket
# 1. 停止 socket 监听 | |
systemctl stop ssh.socket | |
# 2. 禁用 socket 开机自启 | |
systemctl disable ssh.socket |
注意:现在不要重启 SSH 服务,我们得先去防火墙开通这个端口,否则一重启你就连不上了。
# 配置防火墙 (UFW)
Ubuntu 的 UFW 默认是 拒绝所有入站,允许所有出站
重置防火墙 (确保从干干净净的状态开始,防止旧规则干扰):
ufw reset | |
# 系统会提示你会删除现有规则,输入 y 确认 |
设置默认策略 (拒绝所有进来的,允许所有出去的):
ufw default deny incoming | |
ufw default allow outgoing |
放行新的 SSH 端口 (必须做!):
ufw allow 21126/tcp |
屏蔽端口
ufw deny 2095/tcp |
删除屏蔽端口
ufw delete deny 2095/tcp |
删除放行端口
ufw delete allow 2095/tcp |
启动防火墙:
ufw enable | |
# 系统会警告你 SSH 可能会断开,输入 y 确认 |
查看状态:
ufw status |
# 重启 SSH 并测试
重启 SSH 服务,让端口修改生效:
systemctl restart ssh |
验证测试:千万不要关闭当前的黑框框!用新的,如果登录不上就只能 VNC,没有 VNC 就只能重装了
# 配置 Fail2Ban
创建配置文件 (不要直接改 .conf 文件,要改 .local 文件):
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local |
编辑配置文件:
nano /etc/fail2ban/jail.local |
找到
[sshd]部分(可以按Ctrl+W搜索[sshd])。这部分通常在文件中间位置。确保修改或添加以下内容:
[sshd] | |
enabled = true | |
# 必须改成你的新端口 | |
port = 21126 | |
# SSH 日志 | |
logpath = /var/log/auth.log | |
# 尝试失败 3 次 | |
maxretry = 3 | |
# 在 10 分钟内 (600 秒) | |
findtime = 600 | |
# 封禁 1 小时 (3600 秒) | |
bantime = 3600 |
保存并退出 (
Ctrl+O,Ctrl+X)。
# 重启 Fail2Ban
systemctl restart fail2ban |
检查 Fail2Ban 是否正常工作:
fail2ban-client status sshd |
如果你看到类似下面的输出,说明成功了:
Status for the jail: sshdFile list: ...Currently banned: 0(目前还没有人被封,这很正常)