防止 OpenWRT 上的端口扫描

防止 OpenWRT 上的端口扫描

想象一下,您需要在 Internet 路由器上打开端口,但不希望它们被轻易发现或枚举。

如何防止黑客/公司扫描您的开放端口?

答案1

  1. 编辑/etc/config/firewall并添加以下内容:
config include
    option enabled '1'
    option type 'script'
    option path '/etc/firewall.user'
    option fw4_compatible '1'
  1. 创建包含以下内容的文件/etc/firewall.user
set -x # enable verbose mode

nft add set inet fw4 scanner { type ipv4_addr\; flags timeout\; timeout 24h\; }

nft add set inet fw4 good { type inet_service\; elements = { \
    5000, \
    10000 \
}}

nft add set inet fw4 known { type ipv4_addr\; flags constant, interval\; elements = { \
    35.203.210.0/24,  \
    35.203.211.0/24,  \
    45.128.232.0/24,  \
    64.62.156.0/24,   \
    64.62.197.0/24,   \
    65.49.1.0/24,     \
    94.156.71.0/24,   \
    107.170.0.0/16,   \
    123.254.109.0/24, \
    152.32.128.0/17,  \
    162.142.125.0/24, \
    162.216.149.0/24, \
    162.216.150.0/24, \
    162.243.0.0/16,   \
    167.94.138.0/24,  \
    167.94.145.0/24,  \
    167.94.146.0/24,  \
    185.180.143.0/24, \
    185.242.226.0/24, \
    192.241.128.0/17, \
    193.163.125.0/24, \
    198.235.24.0/24,  \
    198.199.96.0/20,  \
    199.45.154.0/24,  \
    206.168.32.0/22,  \
    205.210.31.0/24   \
}}

nft insert rule inet fw4 input_wan ip  saddr @scanner counter log drop
nft insert rule inet fw4 input_wan tcp dport \!= @good ct state new tcp flags \& \(fin\|syn\|rst\|ack\) == syn update @scanner { ip saddr }
nft insert rule inet fw4 input_wan ip  saddr @scanner update @scanner { ip saddr }

nft insert rule inet fw4 prerouting ip saddr @scanner counter log drop
nft insert rule inet fw4 prerouting ip saddr @known  counter drop
  1. 将用户防火墙脚本标记为可执行:chmod +x /etc/firewall.user

  2. 您现在可以应用规则:fw4 restart

解释性说明

  • @scanner集包含尝试打开任何端口的 IP,但@good您希望对所有主机保持开放的端口列表除外。它的过期时间为 24 小时,因为我的 WiFi 路由器相当陈旧且功能较弱,无法足够快地处理该组中的太多记录。您可以更改24h为类似的内容7d。你自便。
  • @known组是我一周左右收集的,这些是一直进行端口扫描的网络。
  • 仅对此进行测试OpenWRT 23.xx。它可能在未来的版本中不起作用。

重要信息

  • 如果您仅向列入白名单的 IP 地址打开端口,则整个规则集是多余的但有时您旅行并需要从未知位置访问您的家庭网络,因此有此规则集。
  • 另一种解决方案是启用端口碰撞,但在智能手机等设备上使用此技术并不总是微不足道或不可能的,尤其是当您需要将端口转发到 LAN 供其他不懂技术的人使用时。

相关内容