
你的鸡正在被日,不信查下日志,避免成为黑产奴鸡,特别甲骨文如果小鸡参与黑产攻击也是封号的一个原因!
我似乎找到比fail2ban更彻底、更简单的解决方法,分享给大家提供个思路。
Ubuntu环境:
一、查看小鸡被凌辱记录:
最近 200 行包含失败登录的条目(交互查看)
sudo tail -n 200 /var/log/auth.log | egrep "Failed password|Invalid user|authentication failure|Connection closed by authenticating user"
搜索整个当前日志文件的失败密码尝试
sudo grep -E "Failed password|Invalid user|authentication failure" /var/log/auth.log | tail -n 200
二、上脚本:Cloudflare DDNS 子域名 动态白名单脚本
#!/bin/bash
PORT=22
DOMAINS=(
ssh-mobile-v4.xxx.xyz
ssh-mobile-v4.xxx.xyz
)
# 清理旧规则链
iptables -F SSH_RULES 2>/dev/null
ip6tables -F SSH_RULES 2>/dev/null
iptables -X SSH_RULES 2>/dev/null
ip6tables -X SSH_RULES 2>/dev/null
iptables -N SSH_RULES
ip6tables -N SSH_RULES
for d in "${DOMAINS[@]}"; do
# IPv4
for ip in $(dig +short A $d); do
iptables -A SSH_RULES -p tcp -s $ip --dport $PORT -j ACCEPT
echo "允许 IPv4 $ip ($d)"
done
# IPv6
for ip in $(dig +short AAAA $d); do
ip6tables -A SSH_RULES -p tcp -s $ip --dport $PORT -j ACCEPT
echo "允许 IPv6 $ip ($d)"
done
done
# 默认 DROP
iptables -A SSH_RULES -j DROP
ip6tables -A SSH_RULES -j DROP
# 应用到 INPUT 链
iptables -D INPUT -p tcp --dport $PORT -j SSH_RULES 2>/dev/null
ip6tables -D INPUT -p tcp --dport $PORT -j SSH_RULES 2>/dev/null
iptables -I INPUT -p tcp --dport $PORT -j SSH_RULES
ip6tables -I INPUT -p tcp --dport $PORT -j SSH_RULES
建议你跑完命令后,马上执行:
sudo iptables -L SSH_RULES -n
sudo ip6tables -L SSH_RULES -n
确认白名单规则是否已正确加载。
三、Cloudflare DDNS 子域名 动态更新脚本
适合放在电脑开机启动执行、或者内网小主机(linux)上
发不上来,自己GitHub找个更新脚本
🔐 现在你的 SSH 安全性已经大幅提升:
只有: ssh-mobile-v4.xxx.xyz、ssh-mobile-v6.xxx.xyz 解析的ip才能访问你的ssh
所有暴力破解都被直接防火墙拒绝,不会再打到 sshd;
白名单由你托管的 DDNS 子域名动态更新,换宽带 IP 也能自动放行;
配合 crontab 每 5 分钟刷新,不怕延迟太长。
相关阅读: HTTP 状态码速查与排障:从 200 到 500,按症状定位问题(含 401/403/404/429/502),内网穿透 + 公网访问超简单方案!P2P 打洞直连与异地组网实操指南,免费个人图床部署教程:Cloudflare+Telegram 集成,含编辑器一键上传脚本 & emoji 功能