V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
pplive
V2EX  ›  宽带症候群

为了防止家里公网 IP 被乱扫,我做了个黑名单 IP 表

  •  
  •   pplive · 347 天前 · 10989 次点击
    这是一个创建于 347 天前的主题,其中的信息可能已经有所发展或是发生改变。
    新人第一次发帖
    最近发现有很多奇怪的 IP 会扫描家里和 VPS 的端口
    统计了下,一个小时就有 500+IP 扫我的机器,强迫症心里有点过不去
    我想拦截这些 IP ,但是我不会写代码,于是我用 GPT 写了个脚本自动统计这些互联网上扫全网的 IP ,并更新到 github 上

    原理:
    监测到有 IP 连我 VPS 未开放的端口 -> 封禁 IP -> 每 5 分钟提交一次到 github 上
    (一般谁访问我的 VPS 会先连未开放的端口呢?一定是恶意 IP )
    使用方法:
    定期执行防火墙脚本,封禁我这边扫到的 iplist.txt
    放在 github 上面了,5 分钟更新一次: https://github.com/Narizgnaw/needtobebanned
    79 条回复    2023-12-21 17:38:36 +08:00
    x86
        1
    x86  
       347 天前
    入口白名单+高位密码
    pplive
        2
    pplive  
    OP
       347 天前
    ps: 感觉应该可以一定程度上防止运营商扫你家端口找你这种情况
    tool2d
        3
    tool2d  
       346 天前
    和我差不多,我统计的黑名单是 ssh 端口乱猜密码的,从登录失败日志里提取的。

    并不会永封,一般就封 24 小时。

    但是也还是远比想象中的要多。
    pplive
        4
    pplive  
    OP
       346 天前
    @x86 合理,但是 [手机使用流量访问家里 NAS] 这种场景,白名单可能不太容易配置。
    pplive
        5
    pplive  
    OP
       346 天前
    @tool2d 我想的是:在攻击者还没扫到你 ssh 端口的时候,就把攻击者的 IP 封禁掉会更安全。比如扫 1-1000 端口,扫到 TCP 3 的时候,就把 IP 加到 DROP 列表里面。同时也能防止运营商查看你开了哪些端口。家里就是这样做的,GPT 写的防火墙。
    mohumohu
        6
    mohumohu  
       346 天前
    防火墙就能解决。
    关键字 knockd
    xipuxiaoyehua
        7
    xipuxiaoyehua  
       346 天前 via iPhone   ❤️ 2
    只开放一个端口 远程 wireguard 回家,随他扫就这一个端口
    pplive
        8
    pplive  
    OP
       346 天前
    @mohumohu 好复杂,我下班学习一下,谢谢!
    pplive
        9
    pplive  
    OP
       346 天前
    @xipuxiaoyehua iPhone+群晖用户表示:有点麻烦
    Qetesh
        10
    Qetesh  
       346 天前
    有些是针对服务扫描的,全球扫描一遍很快
    其实可以装个蜜罐,把常用端口都给蜜罐
    还可以用 fail2ban 、证书登陆、waf 保障安全
    mantouboji
        11
    mantouboji  
       346 天前
    Linux 机器了解一下著名的 fail2ban , 只要是暴露在互联网上的机器都应该安装。

    哥甚至丧心病狂到写了 fail2ban 的配置文件,监视 RouterOS 的 log 记录,操作 RouterOS 屏蔽这些地址。
    pplive
        12
    pplive  
    OP
       346 天前 via iPhone
    @Qetesh 嗯,家里 web 端口都过雷池 WAF ,ssh 走 L2TP ,蜜罐现在不太敢用,会被微步记录。
    xipuxiaoyehua
        13
    xipuxiaoyehua  
       346 天前
    @pplive #9 麻烦在何处,开了 vpn 以后所有局域网内容直接输 ip 就好了,photos drive 那些都没影响
    hefish
        14
    hefish  
       346 天前
    你就让他扫扫嘛,反正也扫不进来啥。
    pplive
        15
    pplive  
    OP
       346 天前 via iPhone
    @xipuxiaoyehua 手机全局开 VPN 费电
    pplive
        16
    pplive  
    OP
       346 天前 via iPhone
    @hefish VPS 上有一些诸如 Wordpress ,Nextcloud ,Kodbox 之类的东西,如果有一天出了 0day 但是没来得及处理就会被人扫出来炸掉。
    killva4624
        17
    killva4624  
       346 天前
    fail2ban 请
    vcn8yjOogEL
        18
    vcn8yjOogEL  
       346 天前
    @pplive #15 官方 WG 耗电非常低
    pplive
        19
    pplive  
    OP
       346 天前 via iPhone
    @vcn8yjOogEL 谢谢,我抽空找个外区苹果账号试一下。
    old9
        20
    old9  
       346 天前   ❤️ 1
    pplive
        21
    pplive  
    OP
       346 天前 via iPhone
    @killva4624 fail2b 有点局限,比如在野 1day 攻击的流量就没法防,要加个 IPS 才可以。所以我没再用 fail2ban 了,用了更轻量的方式防护这种攻击。CPU 和内存占用几乎 0
    Goooooos
        22
    Goooooos  
       346 天前
    我手机 24 小时开着 VPN ,也没见耗电有什么异常
    pplive
        23
    pplive  
    OP
       346 天前 via iPhone
    @Goooooos 我用的辣鸡苹果手机,开 L2TP 会很热,耗电快。
    magic3584
        24
    magic3584  
       346 天前
    请问我家是光猫桥接+openwrt 旁路由,我在 openwrt 上跑了 DDNS 服务可以外网访问 openwrt 。请问我这能监控到这些异常登录吗?
    还有就是摄像头连的主路由,我知道最好对他单独做个子网禁止它扫别的机器,但是,我不会😭
    pplive
        25
    pplive  
    OP
       346 天前 via iPhone
    @old9 感谢,这个好,我收藏一下
    Goooooos
        26
    Goooooos  
       346 天前
    换其他协议,ss ,vmess ,wireguard
    wuyadaxian
        27
    wuyadaxian  
       346 天前
    v4 天天有脚本来爆破 ssh 密码,都封了 3819 个 ip 了,服务器才工作 1 个月。
    pplive
        28
    pplive  
    OP
       346 天前 via iPhone
    @Goooooos 这几个都需要安装第三方 App ,并且流量可被全流量设备识别特征。。。
    pplive
        29
    pplive  
    OP
       346 天前 via iPhone
    @wuyadaxian 是有啥特殊需要必须把 ssh 端口开房出去吗。。。。
    wuyadaxian
        30
    wuyadaxian  
       346 天前
    @pplive 为了远程管理。反正上了密钥,来爆破的都是脚本而已。
    Goooooos
        31
    Goooooos  
       346 天前
    @pplive 一般的翻墙软件都支持这几个协议,然后配置下路由,那就回家和翻墙两不误
    opengps
        32
    opengps  
       346 天前
    看了半天没搞明白,没开放的端口你怎么知道被尝试连接了?你从上层网络设备做的日志?
    pplive
        33
    pplive  
    OP
       346 天前
    @magic3584 Openwrt 本身没有异常登录日志的提醒,但是 Openwrt 如果你用的是 x86 带容器版本,那么可以装一个长亭 WAF ,对互联网仅开放 WAF 的端口,来防止爆破攻击 Web 管理界面: https://waf-ce.chaitin.cn/docs/guide/install
    magic3584
        34
    magic3584  
       346 天前
    @pplive 我用的是 flippy 大佬编译的 n1 固件,不知道啥版本。。。
    还有就是我这 n1 只是旁路由,如果主路由被异常登录也能监测到吗?目前用的是小米的没法去自己刷
    pplive
        35
    pplive  
    OP
       346 天前
    @opengps 简单啊,写个 iptables 脚本,给非白名单端口发 syn 包的 IP 加到 ipset 里面 DROP 掉,然后把 ipsetlist 记录到文本上就 OK 了,我不懂代码,用 GPT 写的。
    datocp
        36
    datocp  
       346 天前
    搜索一下 iptables recent hacker 吧

    根据它用 ipset 的实现,预先让扫描端口的 IP 自动 ban

    ipset destroy banned_hosts
    ipset -N banned_hosts hash:net timeout 180

    -A INPUT -i eth1 -m set --match-set banned_hosts src -j DROP
    -A INPUT -i eth1 -p udp -m multiport --dports 80,5060 -j SET --add-set banned_hosts src
    -A INPUT -i eth1 -p tcp -m multiport --dports 20,23,25,110,135,137:139,161,445,1080,2323,3128,3306,3389 -j SET --add-set banned_hosts src
    pplive
        37
    pplive  
    OP
       346 天前
    @datocp 这也太粗暴了…………不过倒也合理
    wclebb
        38
    wclebb  
       346 天前
    这为了抓肉鸡的吧。
    pplive
        39
    pplive  
    OP
       346 天前 via iPhone
    @magic3584 这个回答不了。。。。只能你自己爬帖研究下了
    admingyu
        40
    admingyu  
       346 天前
    IP 黑名单 --> 肉鸡 IP 名单🧟
    fankangsong
        41
    fankangsong  
       346 天前
    我是 istoreOS ,请问如何分析被扫了? openwrt 的日志我始终没搞明白保存在哪里
    lisonfan
        42
    lisonfan  
       346 天前 via iPhone
    @pplive 看了楼主的帖子下午花了点时间把家里的 web 服务全接入雷池 WAF 了
    YsHaNg
        43
    YsHaNg  
       346 天前 via iPhone
    其实就是做个蜜罐 我用的是这个 https://github.com/firehol/blocklist-ipsets
    pplive
        44
    pplive  
    OP
       346 天前 via iPhone
    @lisonfan 完了,我成发软广的了
    bjfane
        45
    bjfane  
       346 天前
    wg 非常好用。
    EngAPI
        46
    EngAPI  
       346 天前
    @fankangsong istoreos 默认开了如下端口
    22 ,2049 ,53 ,32778 ,32777 ,111 ,32780
    lisonfan
        47
    lisonfan  
       346 天前
    @pplive #44 等着被封号吧(狗头😏
    neroxps
        48
    neroxps  
       346 天前 via iPhone
    @pplive qx ss 回家。无感
    mingl0280
        49
    mingl0280  
       346 天前
    HackerTerry
        50
    HackerTerry  
       346 天前
    iPhone 用户路过,外区苹果商店下载 wireguard ,用 wireguard VPN 翻墙回家两不误。在国外有固定 IP ,还能在爱快上配置 IP 白名单。
    Pepsigold
        51
    Pepsigold  
       346 天前
    这个可以有!!
    xiaoranj
        52
    xiaoranj  
       346 天前
    把乌克兰,俄罗斯的 IP 段直接屏蔽
    openbsd
        53
    openbsd  
       346 天前
    减少对外开放的端口,VPN 回来访问内网服务
    leefor2020
        54
    leefor2020  
       346 天前
    @magic3584 ,路由器的 Guest 功能就可以,我把小米那一堆智能家居的都走的这个 SSID
    kile
        55
    kile  
       346 天前   ❤️ 1
    https://github.com/Narizgnaw/needtobebanned/blob/main/statistic.md

    这个文件里面的中国 和 中華人民共和國 有啥区别?
    pplive
        56
    pplive  
    OP
       346 天前
    @kile IP 归属地显示问题…………具体我也不清楚,使用的是 http://ip-api.com/json/$ip?lang=zh-CN 这个 API
    pplive
        57
    pplive  
    OP
       346 天前
    @kile 卧槽,感谢提醒!差点就犯事了!!!!!这个 API 有私货卧槽卧槽,大家千万不要用
    pplive
        58
    pplive  
    OP
       346 天前
    @xiaoranj 话说有啥方法能对 IP 做区域封禁……找了好久没找到合适的
    fengxianqi
        59
    fengxianqi  
       346 天前
    可以分享下这个脚本吗
    pplive
        60
    pplive  
    OP
       346 天前
    @fengxianqi 这个不太行,因为测试换台机器起不来……不准备分享了
    godall
        61
    godall  
       346 天前
    你的家里 ip 不变的吗?我 1 周-10 天就会被电信强制更换。
    pplive
        62
    pplive  
    OP
       346 天前
    @godall 会的,每 150 小时强制更换
    Jasmine2016
        63
    Jasmine2016  
       346 天前
    贡献一个东北大学的:使用东北大学网络中心的 SSH 黑名单系统 | Lan Tian @ Blog
    https://lantian.pub/article/modify-computer/neu-network-center-ssh-blacklist.lantian/
    Jasmine2016
        64
    Jasmine2016  
       346 天前
    补充:刚刚看了一下中科大的 PPT ,原来东北大学用的也是中科大的蜜罐——
    2008 年 7 月开始中国科大校园网使用这样方式来管理黑名单,有安徽 4 所大学,省外 3 所(东北大学、兰州大学、电子科大)在使用这个黑名单。
    happyxhw101
        65
    happyxhw101  
       346 天前
    我的策略是, 所有服务都通过 nginx 代理, http+tcp, 然后 watch nginx access log, 只要是国外的 ip 立即加入 blockked ipset
    zbowen66
        66
    zbowen66  
       346 天前
    我是用电信光猫的端口转发的,转发了 OpenVPN 、Nginx( https)、Gitea clone 用的 ssh ,正常服务直接通过域名到 nginx ,需要访问内网的时候直接 OpenVPN 回家(长时间使用时为了用上 OpenWrt 的 clash 规则也会 OpenVPN 回家),不知道我这种操作有没有风险
    shyrock
        67
    shyrock  
       346 天前
    只开 ipv6 是不是没这个担心?
    reputati0n
        68
    reputati0n  
       346 天前
    上家公司做的这个社区版的雷池 waf 还不赖,我的公网暴露面基本都是通过它代理出来的
    pplive
        69
    pplive  
    OP
       346 天前
    @shyrock 有时候挂 PT 的话,会有 IP 反向扫你的,还是需要注意一下。
    pota
        70
    pota  
       346 天前
    @lisonfan #42 我也接入了。现在只 openwrt 只留了一个 udp 的内网 vpn 转发还在
    terrancesiu
        71
    terrancesiu  
       345 天前 via iPhone
    在外面,基本都是 wireguard 全走家里。三个公网一个只用来 wireguard 入站,另两个出站。
    dann73580
        72
    dann73580  
       345 天前
    其实我感觉 ip 禁 ping+failban 差不多够用了,再往上走一层就用 wg 。
    caobug
        73
    caobug  
       345 天前
    封不完的,配好 fail2ban 自动就行
    chhtdd
        74
    chhtdd  
       345 天前
    想知道是怎么发现:"最近发现有很多奇怪的 IP 会扫描家里和 VPS 的端口" 的,纯网络小白,好奇,谢谢解答
    que01
        75
    que01  
       345 天前
    我在自己的 RouterOS 上防火墙搞了这个,1.扫端口直接封半个月 2.ssh 失败就按官方的建议做了渐进封禁 直接加入黑名单。3.然后下载了中国区的国家 ip 列表,不是来自中国就直接拒绝,虽然可能有误伤但是自己用 误伤也无所谓了。现在想 log 看别人踢门都没办法了
    pplive
        76
    pplive  
    OP
       345 天前
    @chhtdd 比如,你访问 https://x.threatbook.com/ 微步,https://fofa.info/ FOFA ,https://hunter.qianxin.com/ 鹰图这些搜索引擎,输入你的 IP 地址,就可以看到你 IP 上开了哪些端口和服务,有哪些中间件,有哪些风险。这些系统会 24 小时扫描全网的 IP 地址并为攻击者提供有效的信息。其实对固定 IP 的用户是不利的,需要这些平台的出口 IP 封禁下。封禁的判断依据就是识别这些情报平台的扫描流量的特征,流量特征进一步细化,就是要识别对同一主机的多个端口进行扫描的流量,所以我用 GPT 做了识别的脚本:如果向我的 VPS 未开放端口发送 SYN 数据包超过 3 次,就会被防火墙封禁。这就是大概的逻辑。
    ButcherHu
        77
    ButcherHu  
       345 天前
    可以先把云服务商的网段全屏蔽了,需要维护的 ipset 少一大半。
    chhtdd
        78
    chhtdd  
       344 天前
    @pplive 大概理解了,我再深挖深挖,感谢大佬
    lun9
        79
    lun9  
       344 天前
    很奇怪,我没开 ssh 的端口映射,群晖上的端口居然被扫描到然后尝试爆破
    User [amax] from [103.78.12.14] failed to log in via [SSH] due to authorization failure.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2842 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 06:49 · PVG 14:49 · LAX 22:49 · JFK 01:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.