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

家庭路由器防火墙设置讨论

  •  
  •   jimmy2010 · 1 天前 · 1034 次点击

    为什么要设置防火墙

    我用的是家庭宽带,pppoe 拨号,有公网 IP ,映射了群晖等一些服务出去,之前在路由器上设置了访问日志观察了一段时间,基本上每时每刻都会有全世界各地的 IP 做端口扫描探测。 下面是国外国内两个著名的 IP 资产测绘平台上搜索 synology 关键词的情况: shodan 20W 结果: 1.png

    fofa 100W+ 结果: 2.png

    这其中可能就有你我的 nas ,虽说一般也没那么容易就被攻击,但做些防护措施总没错的,万一哪天群晖曝出漏洞,也没那么快就被利用到。

    我的防火墙设置

    我用的是 routeros ,目前 filter 表主要做了这么些规则: 3.png

    1 、fasttrack forward ,没有指定接口,用于快速转发已经建立起连接的流量( establised 和 related ),也就是不需要经过下面的规则了,设置了硬件 offload ,可以减轻路由器计算压力

    2 、fasttrack input ,同上,主要区别是一个是转发,一个是路由器本身的服务,比如 VPN 的流量,已经建立连接的 VPN 就不需要继续走下面的防火墙规则了

    3 、白名单,在白名单里的 IP 直接放行,通常可以设置一些比较固定的远端管理 IP

    4 、丢弃非法流量和黑名单流量,非法流量有可能是一些特殊机制的扫描造成的,直接丢弃;黑名单来自于下面规则中的扫描行为检测

    5 、拒绝指定时间段内(例如凌晨 1 点到早上 7 点)对游戏服务器的访问,就几个小伙伴一起玩的 mc 之类的,因为之前发现有小伙伴玩到凌晨 4 点,这很危险,影像身体健康,所以设置了这个手动防沉迷机制。

    突然想起这里可能有点问题,因为前面提到已经建立的连接直接就会转发,所以这条规则可能要放到更前面去才能产生效果。

    6 、监测端口扫描行为并添加到黑名单,这是 routeros 自带的功能,可以自行调整参数,例如 3 秒中内访问了 5 个以上不同的端口试图新建连接。

    7 、允许访问路由器自身开放的服务,例如 VPN 、SSH 等

    8 、拒绝其它所有进入流量,这个主要是避免访问到路由器上开放的其它一些不必要的端口。如果有需要开放的话,应该手动添加到第 7 条中去。

    接下来的计划:

    预计还可以研究一下根据地域来阻止访问,例如禁止所有国外 IP 访问,甚至只允许省内访问,群晖上已经设置了禁止国外 IP 访问,这也能阻挡掉很多扫描和攻击行为,注意前面还要放通内网 IP ,不然局域网都访问不到了。 4.png

    NAT 表主要是一些内部服务的端口映射,其中有一条值得一提,用于在局域网通过公网 IP 访问内部服务器的,又叫做 IP 回流、发夹效应( Hairpinning )、“NAT 环回” ( NAT loopback ) 等等: image.png 当局域网通过网关访问局域网地址时,对源地址进行转换,这样就能在内网通过域名或者公网 IP 来访问到内部的群晖系统了。

    所以大家还有什么其它的防火墙设置策略吗?

    14 条回复    2024-09-19 11:02:27 +08:00
    hermanarturo
        1
    hermanarturo  
       1 天前
    666
    hermanarturo
        2
    hermanarturo  
       1 天前
    设置了如果从外网访问 router 的 22 3389 之类的端口,直接添加 ip 到黑名单里面
    ZeroClover
        3
    ZeroClover  
       1 天前
    访问特定 API w/ OIDC credentials 自动对访问 IP 全服务同步加白 15 分钟

    懒得弄的就端口敲门

    其实大部分内网服务都直接 Cloudflare Tunnel ,不需要暴露对外端口
    totoro625
        4
    totoro625  
       1 天前   ❤️ 1
    一个固定的白名单 + 访问特定 api 自动加白名单比较好
    简单易维护

    如访问一个 api 链接,加白名单,直到当天 24 点进行删除
    tool2dx
        5
    tool2dx  
       1 天前
    公网 IP4 没办法的,你可以把服务改成公网 IP6 ,就没人扫你了。

    我自己写了一个 fail2ban ,专门搜集屡教不改的 IP 黑名单,自动化拉到 iptables -j DROP 里关禁闭。
    vcn8yjOogEL
        6
    vcn8yjOogEL  
       1 天前
    VPN
    dodakt
        7
    dodakt  
       1 天前
    我是特殊端口 +单位 ip 和运营商基站 ip 白名单 然后连接其他肺白名单网络就上 vpn 感觉够用了 毕竟大多数时候需求都是单位网络和流量访问
    Jinnrry
        8
    Jinnrry  
       1 天前 via iPhone
    我是只开一个端口做 vpn ,任何访问都通过 vpn 。自己搞防火墙太维护成本太高了,而且非常容易出错,而且很可能是把自己拦住但是拦不住攻击
    Jhma
        9
    Jhma  
       1 天前
    不要把非公共服务端口暴露给外网,各类 VPN 是最优解,网上很多把群晖的端口暴露出来的教程真是害人不浅
    iamwin
        10
    iamwin  
       1 天前 via Android
    我用 opnsense 默认策略,只开放外网 vpn 端口回家,没了
    povsister
        11
    povsister  
       1 天前
    无论什么防火墙
    default deny + 按需 ACL
    绝不多配就行了。
    glouhao
        12
    glouhao  
       16 小时 40 分钟前 via Android
    @Jhma 我的群晖用的非标端口+屏蔽国外。
    rulagiti
        13
    rulagiti  
       12 小时 53 分钟前
    用 vpn 连,甚至更严格用楼上的端口敲门及 api 添加源 ip 白名单。
    piero66
        14
    piero66  
       12 小时 36 分钟前 via Android
    我都是用 ipv6 或者 zerotier ,公网 v4 只有 pt 在用,映射全关了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2525 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 15:38 · PVG 23:38 · LAX 08:38 · JFK 11:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.