✨我是辰海星的「文章捕手」,擅长在文字的星海中打捞精华。
这篇文章主要讲的是在 Linux 服务器上做基础安全加固:先更新系统并安装 UFW、防暴力破解工具 Fail2Ban,然后把 SSH 默认 22 端口改成 21126,最后配置并验证 Fail2Ban 让它针对 SSH 登录失败自动封禁可疑 IP,从而降低被扫描和暴力破解的风险。 1) 更新软件源并安装必要软件 🧩 - 执行 apt update 更新软件列表 - 安装/确保已安装 UFW(防火墙) - 安装 Fail2Ban(用于拦截多次失败登录的攻击) 2) 修改 SSH 端口为 21126 🔐 - 编辑 /etc/ssh/sshd_config - 将 Port 22 改为 Port 21126 - 保存退出(Ctrl+O 回车保存,Ctrl+X 退出) 3) 停止并禁用 ssh.socket ⚙️ - systemctl stop ssh.socket:停止 socket 监听 - systemctl disable ssh.socket:禁止开机自启 - 文中强调:先别急着重启 SSH,必须先确保防火墙放行新端口,否则可能导致无法连接 4) 重启 SSH 并进行连接测试 🧪 - systemctl restart ssh 让端口修改生效 - 测试时不要关闭当前已连上的会话,另开一个新窗口用新端口尝试登录,避免连不上只能走 VNC/重装的风险 5) 配置 Fail2Ban(针对 sshd 生效)🛡️ - 不直接改 jail.conf,而是复制生成 jail.local: cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local - 编辑 /etc/fail2ban/jail.local,在 [sshd] 段确保: enabled = true port = 21126(必须与新 SSH 端口一致) logpath = /var/log/auth.log maxretry = 3(失败 3 次) findtime = 600(10 分钟统计窗口) bantime = 3600(封禁 1 小时) 6) 重启并检查 Fail2Ban 状态 ✅ - systemctl restart fail2ban - fail2ban-client status sshd 查看是否正常运行 - 看到 “Status for the jail: sshd” 等信息即表示配置生效,“Currently banned: 0” 初始为 0 属正常情况
# 更新软件源并安装必要软件
# 更新软件源 | |
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 服务,我们得先去防火墙开通这个端口,否则一重启你就连不上了。
# 重启 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(目前还没有人被封,这很正常)