openwrt使用WDS时,使用DNS劫持实现访问域名访问web
发布日期:2021-05-07 15:56:20 浏览次数:21 分类:技术文章

本文共 1006 字,大约阅读时间需要 3 分钟。

导读

前阵子因为工作需要,要在中继器(openwrt使用WDS)wifi中继过程中登陆中继器的web。

由于WDS是工作做OSI7层网络模型中的链路层(二层),直接使用iptables进行DNS劫持显然行不通,后来还尝试了使用libpcap进行抓包转发,哈哈,显然行不通,各种折腾。

最后发现Linux还有二层防火墙:)

ebtables – 与iptables相似
详细使用方法可参考 。

openwrt使用WDS时DNS劫持步骤

1. openwrt配置WDS

这不是本文章的重点:)

可按住openwrt官网的document进行配置
我使用的是gl-inet的路由器,里面已经集成了该功能的配置,直接在web上配置即可,这路由器可以当成开发板学习,有兴趣的同学可以买一个来学习一下openwrt,哈哈哈!

WDS中继成功后,中继器会从上级获得一个ip

$ifconfig br-lan | grep "inet addr" | awk -F : '{print $2}' | awk '{print $1}'	192.168.7.106

我这获得的是192.168.7.106,需要记住这个ip,后面会用到。

2. 安装ebtables

路由器连接上网络

$opkg update$opkg install kmod-ebtables-ipv4$opkg install ebtables-utils

3. 配置防火墙

使用ebtables将OSI二层数据重定向到OSI三层

$ebtables -t broute -A BROUTING -p ipv4 --ip-proto udp --ip-dport 53 -j redirect

使用iptables将所有53端口的数据都DNAT到中继器本地DNS服务器

$iptables -t nat -A PREROUTING -p udp -m udp --dport 53 -j DNAT --to-destination 192.168.7.106

此时,DNS劫持已经完成。

最后添加本地域名解析到/etc/hosts,重启dns。这样就可以像市面上的中继器一样,通过域名访问中继器web了。

$echo "192.168.7.106 dengxinfa.com" >> /etc/hosts$/etc/init.d/dnsmasq restart
上一篇:openwrt配置ipv6
下一篇:win10 linux子系统Cmder默认工作目录配置

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2025年03月19日 11时30分26秒