logo NodeSeekbeta

利用【Cloudflare DDNS 子域名 动态白名单】 巧妙解决:SSH 暴力破解攻击

新人发帖赚分/手敲..支持下 xhj003

你的鸡正在被日,不信查下日志,避免成为黑产奴鸡,特别甲骨文如果小鸡参与黑产攻击也是封号的一个原因!

我似乎找到比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.xyzssh-mobile-v6.xxx.xyz 解析的ip才能访问你的ssh

所有暴力破解都被直接防火墙拒绝,不会再打到 sshd;

白名单由你托管的 DDNS 子域名动态更新,换宽带 IP 也能自动放行;

配合 crontab 每 5 分钟刷新,不怕延迟太长。

  • 为什么不用密钥登录呢~

  • 只适合ip变化不大的用户,密码别整啥123456这些 随便他爆破

  • 我是 SSH 换成非标准端口就没有什么爆破了

  • 换端口是自欺欺人

  • 我都是白名单梯子ip,使用梯子连接。

  • @qiucangyue #3
    脚本小子,不管默认22还是非标端口,轮番尝试的

  • 密钥登录解决问题了,不折腾了

  • 找个高位端口,别说爆破的了,扫描的都几乎没有

  • 感谢分享,是个不错的思路

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有43632位seeker

🎉欢迎新用户🎉