routeros 里该怎么禁止某些域名访问呢

2023-02-15 10:08:11 +08:00
 linuxgo
家里买的长虹电视真是把我整疯了,每次开机都提示固件升级(一旦升级就没法安装三方软件),也没有地方可以关掉升级。想在 routeros 中过滤掉升级检查,但是在网上搜了一遍,都没找到什么有效的方法
我现在是在 firewall 里添加了一个地址列表,然后在 filter 里添加规则,但是没什么鸟用,问问大家究竟要怎么做呢?

我的规则是
chain=input action=drop dst-address-list=blockweb
3061 次点击
所在节点    宽带症候群
41 条回复
chinni
2023-02-15 10:15:22 +08:00
1.用 forward 表 2.用 sni 匹配比 ip 颗粒度更加细
dsgdsfh
2023-02-15 10:58:39 +08:00
我是树莓派搭建 DNS ,然后 DHCP 设置树莓派 ip ,直接 DNS 写规则屏蔽
sylviaweissenba
2023-02-15 11:01:00 +08:00
vi /etc/hosts
ouqihang
2023-02-15 11:01:01 +08:00
官方提供了好几种方法,包括防火墙,代理服务器,layer7 都有。
https://wiki.mikrotik.com/wiki/Manual:IP/Proxy
https://wiki.mikrotik.com/wiki/Manual:IP/Firewall/L7
ouqihang
2023-02-15 11:01:57 +08:00
用 input 应该不对,input 是从外网进内网。
ych8398527
2023-02-15 11:15:45 +08:00
ip->dns->static 把域名直接解析到 127.0.0.1
linuxgo
2023-02-15 11:26:39 +08:00
@dsgdsfh #2 你说的是设置客户端静态 ip ,再阻止这个 ip 地址吧,但是那样的话所有网站都不能访问了
linuxgo
2023-02-15 11:27:37 +08:00
@ouqihang #4 layer7 我看到说不能用来屏蔽域名,非常消耗资源而且没有效果
linuxgo
2023-02-15 11:31:13 +08:00
@ouqihang #5 我改成 forward 试试
mac100
2023-02-15 11:43:06 +08:00
添加一个旁路由吧。ros 管 IP 分流 OP 管域名分流 。完美
Ruslan
2023-02-15 13:37:20 +08:00
配置 DNS 劫持,把 53 端口劫持到你自己内网的 DNS 服务器,在自己 DNS 服务器把域名解析到 127.0.0.1
wwbfred
2023-02-15 14:33:19 +08:00
家用需求该是上 OP 吧,ROS 不是这个场景的,有些家庭基础功能到 ROS 里变成了折腾功能。OP 里 dnsmasq 直接写 0.0.0.0 就行了。
qfdk
2023-02-15 14:55:52 +08:00
建议来个 aurgard home 然后 ip 设置成 3.7.2.1 想怎么玩儿就咋玩儿
datocp
2023-02-15 15:09:09 +08:00
这种对于 openwrt 就简单了
直接 dnsmasq
address=/qq.com/127.0.01 #这个地址还是是比 0.0.0.0 更可靠,消亡时间更快。之前是解决 office2016 升级用。

其它的就是对电视进行分析它连哪些外部 ip 域名,然后用 nslookup 之类的取得 ip 。以目前 CDN 的存在这种方式误伤率相当高的。又是 dnsmasq 更灵活调用 ipset ,ipset=/qq.com/BdstIP
然后
iptables -p tcp -s 电视 ip -d 升级 ip -j -j REJECT --reject-with tcp-reset
iptables -s 电视 ip -d 升级 ip-j REJECT --reject-with icmp-net-unreachable

哈哈,ros 真看不上。哪有原生 linux 好用。随便搞个优酷 yk1 也能跑满 100mbps 。没有 1000mbps 带宽,不知道 erx 能带多大的带宽。
datocp
2023-02-15 15:10:07 +08:00
iptables -p tcp -s 电视 ip -d 升级 ip -j REJECT --reject-with tcp-reset
iptables -s 电视 ip -d 升级 ip -j REJECT --reject-with icmp-net-unreachable
mrzx
2023-02-15 16:46:54 +08:00
@chinni 请问 sni 匹配是什么类型匹配?
3dxfood
2023-02-15 16:54:18 +08:00
@mrzx firewall 策略里有 tls-host 字段,可以定向匹配出 https 流量的 sni 。
3dxfood
2023-02-15 16:57:39 +08:00
可以用 ros 做 dns server ,dns static 里写黑洞 A 记录;或者 ros 里 DNS server 写旁路 op 地址,用 op 来做。
mrzx
2023-02-15 17:13:58 +08:00
@3dxfood 谢谢,大致理解了。

routeros 大概通过 3 种方式来解决这个 UP 的需求。
1.采用 DNS 劫持的方式,将不想访问的站点直接解析成错误的 IP ,让广告失效。DNS 劫持的工作可以由 routeros 的 dns 功能做,或者 openwrt 固件的路由器来做?

2.通过 layer7 识别方式来写,感觉这个难度最高,怎么写才能屏蔽广告,如果有对应的例子就能理解了,看了一下楼上提供的官网例子,没看懂。。。

3.通过你们说的 sni,我搜了半天才了解 sni 是什么,“在 HTTPS 中,先有 TLS 握手,然后才能开始 HTTP 对话。如果没有 SNI ,客户端将无法向服务器指示正在与之通信的主机名。” 然后利用 routeros 强大的 sni 匹配功能,将主机名匹配起来,在决定 drop 和放行.
mrzx
2023-02-15 17:38:56 +08:00
layer7 语法搜了好久,大概理解了。
大致是先用 wireshark 抓包,抓取数据流用的 data 部分,比如 V2EX 在数据流的十六进制就是 76 32 65 78 ,在通过在 routeros 里新建 layer7 匹配策略,在 Regex 语句匹配这些十六进制,可能正则表达式跟 iptables 之类的稍有些区别。。

比如十六进制 76 在 routeros 下就写成\76 ^代表数据包的开头 $代表数据包的结尾 匹配 V2EX 的,layer7 语法应该写成“^\76.+ \78$”

哪天在家里屏蔽老妈上拼多多试试。。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/916223

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX