保护您的 Mikrotik 免受攻击的简单方法

我想与社区分享一种简单有效的方法,说明如何使用 Mikrotik 保护您的网络以及从其背后“窥视”的服务免受外部攻击。 也就是说,只需三个规则即可在 Mikrotik 上组织蜜罐。

因此,假设我们有一个小型办公室,有一个外部 IP,后面有一个 RDP 服务器供员工远程工作。 当然,第一条规则是将外部接口上的端口 3389 更改为另一个端口。 但这不会持续很长时间;几天后,终端服务器审核日志将开始显示每秒来自未知客户端的多次失败授权。

另一种情况,你在 Mikrotik 后面隐藏了星号,当然不是在 5060 udp 端口​​上,几天后密码搜索也开始了......是的,是的,我知道,fail2ban 是我们的一切,但我们仍然必须努力...例如,我最近在 ubuntu 18.04 上安装了它,并惊讶地发现开箱即用的fail2ban不包含来自同一 ubuntu 发行版的同一盒子的星号的当前设置...并谷歌搜索快速设置因为现成的“食谱”不再有效,多年来发布的数量不断增长,旧版本的“食谱”文章不再有效,而新版本几乎从未出现……但我离题了……

那么,简单来说什么是蜜罐 - 在我们的例子中,它是一个蜜罐,外部 IP 上的任何流行端口,外部客户端对此端口的任何请求都会将 src 地址发送到黑名单。 全部。

/ip firewall filter
add action=add-src-to-address-list address-list="Honeypot Hacker" 
    address-list-timeout=30d0h0m chain=input comment="block honeypot ssh rdp winbox" 
    connection-state=new dst-port=22,3389,8291 in-interface=
    ether4-wan protocol=tcp
add action=add-src-to-address-list address-list="Honeypot Hacker" 
    address-list-timeout=30d0h0m chain=input comment=
    "block honeypot asterisk" connection-state=new dst-port=5060 
    in-interface=ether4-wan protocol=udp 
/ip firewall raw
add action=drop chain=prerouting in-interface=ether4-wan src-address-list=
    "Honeypot Hacker"

ether22-wan 外部接口的流行 TCP 端口 3389、8291、4 上的第一条规则将“访客”IP 发送到“蜜罐黑客”列表(ssh、rdp 和 winbox 端口提前禁用或更改为其他端口)。 第二个在流行的 UDP 5060 上执行相同的操作。

预路由阶段的第三条规则会丢弃来自 srs 地址包含在“蜜罐黑客”中的“访客”的数据包。

经过两周与我家 Mikrotik 的合作,“蜜罐黑客”名单中包含了大约 XNUMX 个 IP 地址,这些人喜欢“控制”我的网络资源(家里有我自己的电话、邮件、 nextcloud,rdp)。暴力攻击停止了,幸福来了。

在工作中,事情并非如此简单,他们继续通过暴力破解密码来破坏 rdp 服务器。

显然,端口号早在蜜罐开启之前就已由扫描仪确定,而在隔离期间,要重新配置超过 100 个用户并不那么容易,其中 20% 的用户年龄超过 65 岁。 在端口无法更改的情况下,有一个小方法。 我在网上看到过类似的东西,但还涉及一些额外的添加和微调:

配置端口碰撞的规则

 /ip firewall filter
add action=add-src-to-address-list address-list=rdp_blacklist 
    address-list-timeout=15m chain=forward comment=rdp_to_blacklist 
    connection-state=new dst-port=3389 protocol=tcp src-address-list=
    rdp_stage12
add action=add-src-to-address-list address-list=rdp_stage12 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage11
add action=add-src-to-address-list address-list=rdp_stage11 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage10
add action=add-src-to-address-list address-list=rdp_stage10 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage9
add action=add-src-to-address-list address-list=rdp_stage9 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage8
add action=add-src-to-address-list address-list=rdp_stage8 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage4
add action=add-src-to-address-list address-list=rdp_stage7 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage6
add action=add-src-to-address-list address-list=rdp_stage6 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage5
add action=add-src-to-address-list address-list=rdp_stage5 
    address-list-timeout=4m chain=forward connection-state=new dst-port=
    3389 protocol=tcp src-address-list=rdp_stage4
add action=add-src-to-address-list address-list=rdp_stage4 
    address-list-timeout=4m chain=forward connection-state=new dst-port=
    3389 protocol=tcp src-address-list=rdp_stage3
add action=add-src-to-address-list address-list=rdp_stage3 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage2
add action=add-src-to-address-list address-list=rdp_stage2 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp src-address-list=rdp_stage1
add action=add-src-to-address-list address-list=rdp_stage1 
    address-list-timeout=4m chain=forward connection-state=new dst-port=3389 
    protocol=tcp 
/ip firewall raw
add action=drop chain=prerouting in-interface=ether4-wan src-address-list=
rdp_blacklist

4 分钟内,远程客户端仅允许向 RDP 服务器发出 12 个新“请求”。 一次登录尝试包含 1 到 4 个“请求”。 在第 12 个“请求”时 - 阻塞 15 分钟。 就我而言,攻击者并没有停止攻击服务器,他们调整了计时器,现在做得非常慢,这样的选择速度将攻击的有效性降低到零。 所采取的措施几乎没有给公司员工的工作带来任何不便。

另一个小技巧
该规则按照时间表在凌晨 5 点开启,并在凌晨 XNUMX 点关闭,此时真人肯定已经睡着了,而自动拣选员则继续醒着。

/ip firewall filter 
add action=add-src-to-address-list address-list=rdp_blacklist 
    address-list-timeout=1w0d0h0m chain=forward comment=
    "night_rdp_blacklist" connection-state=new disabled=
    yes dst-port=3389 protocol=tcp src-address-list=rdp_stage8

在第 8 次连接时,攻击者的 IP 已被列入黑名单一周。 美丽!

好吧,除了上述内容之外,我还将添加一个 Wiki 文章的链接,其中包含用于保护 Mikrotik 免受网络扫描仪影响的工作设置。 wiki.mikrotik.com/wiki/Drop_port_scanners

在我的设备上,此设置与上述蜜罐规则一起使用,很好地补充了它们。

UPD:正如评论中所建议的,数据包丢弃规则已移至 RAW 以减少路由器上的负载。

来源: habr.com

添加评论