WireGuard as a “Switch”



Not really a switch, but similar. If you want to exchange data from two network using a host on Internet, this post helps.

In this case, Router 1 want to use Router 2 as gateway for some destinations. All 3 Nodes here have Internet public IP address.

I set-up a network, 192.168.20.0/24, using WireGuard. Our work are all on the Server in the middle.

If I put such config to /etc/wireguard/wg0.conf and run wg-quick up wg0, then I may lost connection to the server, because of the default route.

Now, add a route table to your system and change wg0.conf, let’s name it wgswitch and table id 201.

Then modify wg0.conf.

Now when you establish connections, you’ll be able to ping from router1 to router2 using 192.168.20.0/24 network.

But if you want to try a custom network, that’s not enough, you need extra route and ip rule for your network



WireGuard as a “Switch” by @sskaje: https://sskaje.me/2019/11/wireguard-as-a-switch/

Incoming search terms:

EdgeRouter 策略路由实现分析

最近家里的路由规则越来越复杂,而且越来越好用。正好昨天跟朋友讨论他的家用路由改造方案,所以研究了一下EdgeRouter的策略路由(Policy-based Routing,PBR)的实现。

我家里的路由是EdgeRouter Lite,固件1.9.1.1,这个实现跟固件关系不大。

首先,我们可以参考一下官方的文档:EdgeRouter – Policy-based routing (source address based)

Continue reading “EdgeRouter 策略路由实现分析” »

EdgeRouter 策略路由实现分析 by @sskaje: https://sskaje.me/2017/06/edgerouter-policy-based-routing-analysis/

Incoming search terms:

另类方法劫持手机流量

实际上看,CharlesProxy并不能100%地“劫持”到手机的https流量,说“劫持”可能不太合适,因为CharlesProxy根本都不把这个443端口的请求在请求列表里显示出来。

这次玩的是GameLoft的Asphalt Xtreme,从google play store下载下来玩后,发现游戏的免费门槛太高了,随便玩玩不消费就进行不下去。
之前玩GameLoft的游戏改数据,都是iPhone下备份数据,修改存档,因为那些游戏有存档。但是这次主要用了Android,且没有root。试过iOS的版本,文档里没看到明文数据(txt/bin都没有)。本来想找个游戏修改器试试,后来没继续下去。

具体选型上,我是在EdgeRouter Lite上跑了个redsocks。因为是临时方案,所以不考虑使用EdgeOS/VyOS的配置语法,而直接使用了iptables。
协议分析和数据劫持,使用了CharlesProxy,因为CharlesProxy支持socks代理,还自带”Rewrite”功能,可以做简单字符串替换和正则替换。

环境:
路由 EdgeRouter Lite 固件1.9.1,IP 192.168.1.1,基于debian wheezy
Redsocks,0.4+dfsg-1,下载地址 https://packages.debian.org/wheezy/redsocks

电脑 MacBook Pro macOS 12 + CharlesProxy 4.x, IP 192.168.1.20,HTTP端口8888,Socks端口8889

手机 Mate 9,IP 192.168.1.40;

路由端

ERL是mips/mips64,从debian官网下载mips版的deb,直接 dpkg -i 安装即可。如果路由上没有libevent,还得下载装一下。
安装好redsocks后,修改 /etc/default/redsocks,修改START=yes。
直接基于 /etc/redsocks.conf 修改

改local_ip的原因是因为我iptables偷懒了。反正用完就关,无所谓。

使用 /etc/init.d/redsocks start启动服务。

iptables
只劫持了来自 192.168.1.40 的tcp 443的流量,修改到了12345端口。

电脑

开启CharlesProxy的Socks服务
Proxy菜单 -> Proxy Settings… -> Proxies
勾选“Enable SOCKS proxy”,Port“8889”,勾选“Enable HTTP proxying over SOCKS”和“Include default HTTP ports(80,443,8080,8443)”。

由于默认状态下,CharlesProxy列表里出现的都是IP,没有域名,所以简单粗暴地对所有的443端口开启SSL proxy。
Proxy菜单 -> SSL Proxy Settings… -> SSL Proxying
直接Add一个 Host=*,Port=443的项目,并启用。用完就关掉。

接下来就是Rewrite的了,在看到流量之前就不用考虑了。
工具在 Tools菜单里就能看到。

另类方法劫持手机流量 by @sskaje: https://sskaje.me/2017/04/hijack-mobile-phone-traffic-using-router-and-charlesproxy/

Incoming search terms:

TCPDUMP Capture Netlink Packets

I’m writing a Wireshark Dissector for IPSET’s protocol. Commands below are to capture netlink packets using tcpdump.

TCPDUMP Capture Netlink Packets by @sskaje: https://sskaje.me/2017/04/tcpdump-capture-netlink-packets/

Incoming search terms:

EdgeRouter Policy Based Routing Using DNSMASQ IPSET

之前用SNIProxy按域名区分流量,着实麻烦。尤其是后期发现路由表莫名其妙出问题。

EdgeRouter的Policy Based Routing(PBR)使用的是自带配置语法的firewall modify功能。
官方有两篇教程:
EdgeRouter – Policy-based routing for destination port
EdgeRouter – Policy-based routing (source address based)

第二篇文章顺带提了network-group。之前在配置VPN时,使用过network-group,还比较过使用firewall modify + network-group 与配置一堆interface-route的区别。

而,这里的network-group的实现,使用了netfilter的ipset。Man pages可以看这里,命令在edgerouter上也附带了。

dnsmasq支持 ‘–ipset‘ 参数,把对配置域名解析的IP存入到指定的ipset。具体细节可以看dnsmasq的文档

dnsmasq配置的语法比较简单。

domain 部分参考 address 的语法。例如:

配置好所有自己需要的域名,重启dnsmasq即可。

ipset本身支持timeout,但是edge os的network-group不支持,所以在配置dnsmasq之前,最好创建一个新的network-group。

假定新建的ipset名叫 MY_SET,edge router的主要相关配置如下:

其他诸如配置 static table, interface firewall 可以参考最前边的文档。

EdgeRouter Policy Based Routing Using DNSMASQ IPSET by @sskaje: https://sskaje.me/2017/04/edgerouter-policy-based-routing-dnsmasq-ipset/

Incoming search terms: