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 可以参考最前边的文档。 Incoming search terms:edgemax Source Based … Continue reading “EdgeRouter Policy Based Routing Using DNSMASQ IPSET”

Nginx 特定 IP 需要认证

文档: satisfy 参数 all 表示,所有条件都得满足; 参数 any 表示,任一条件满足即可。 所包含的条件包括 ngx_http_access_module, ngx_http_auth_basic_module, ngx_http_auth_request_module, 和 ngx_http_auth_jwt_module 这4个模块。

上述配置还处理了认证失败的跳转。 这个配置可以保存成独立的 .conf 文件,在 server {} 里 include。 Link to this post!

Build SNIProxy Debian Package for EdgeRouter

SNIProxy的最新版0.4.0,上一次提交已经很久以前了,建议直接使用github库里的代码。 官方github:https://github.com/dlundquist/sniproxy 我的fork:https://github.com/sskaje/sniproxy 如前文所说,Debian Wheezy已经LTS了,所以从依赖开始。 不过,我没有去配交叉编译的环境,而是直接qemu装了两个虚拟机,一个mips(给EdgeRouter Lite),一个mipsel(给EdgeRouter X),具体方法可以参考之前的blog:Install Debian MIPS and Debian PowerPC on OSX。 好处是,闭着眼睛就可以配构件环境;坏处是,慢慢慢慢慢慢慢慢慢慢慢慢慢慢慢慢慢慢慢慢慢慢慢慢到死了。 以mips为例,mipsel一模一样。 构件环境不说了。 先编译 libudns。 udns的官方包里没有debian的打包配置,所以我直接从debian官方包列表的链接里下载,下载地址在:https://packages.debian.org/source/sid/udns 三个文件都下,用到的是两个tarball。

按上述命令执行完之后,deb包会出现在上一级目录,生成的文件包括: libudns0_0.4-1_mips.deb libudns-dev_0.4-1_mips.deb udns-utils_0.4-1_mips.deb udns_0.4-1_mips.changes 其中,libudns-dev_0.4-1_mips.deb 直接安装在开发环境,libudns0_0.4-1_mips.deb 装在路由上。

然后编译sniproxy git clone 之后,同样进目录执行

Link to this post!

Ubnt EdgeRouter Lite 和 EdgeRouter X 上安装使用SNIProxy

EdgerRouter Lite和EdgerRouter X使用的固件版本 1.9.0 是基于debian wheezy的,但是debian wheezy现在已经进入LTS了,mips和mipsel不在官方的维护架构里,以至于现在无法使用官方的apt更新debian-security,而且在ubnt的路由上,安装很多开发库都没法搞了。 EdgerRoute Lite 使用的是mips64,debian源里需要用 mips 的包;而 EdgeRoute X 使用的是mipsel。 使用lscpu看CPU的信息: EdgeRouter Lite

EdgeRouter X

准备 编译libudns和sniproxy 待补充。我已经把构建好的包发到了 http://dl.sskaje.me/debian/。 SSH登录ER

下载软件 EdgeRouter Lite 请使用mips

EdgeRouter X 请使用mipsel

安装

配置 请参考官方文档。 按我的需求,官方的功能没法满足,所以我对官方的源码做了一些改动,具体可见 https://github.com/sskaje/sniproxy。 使用 首先修改 /etc/default/sniproxy,这样才可以使用init的脚本启动

启动

Incoming search terms:ubnt er-xits742wantn67tears72uspirito4rslidei2ksafeibaqueenn3npracticeps1opportunitygcoluckrcfadult2syinteriori97flies8stfather8v7edgerouterx ipv6edgerouterxedgerouter x … Continue reading “Ubnt EdgeRouter Lite 和 EdgeRouter X 上安装使用SNIProxy”

Install Debian MIPS and Debian PowerPC on OSX

I tried MacPorts, but its qemu does not have qemu-system-ppc or qemu-system-mips. Even though, I have qemu installed under macports, if you see any dependency missing, try to port install qemu and then uninstall. OSX 10.11.5 Xcode Install QEMU Download 2.6.0 from Qemu.org, configure and make like:

I did not see any error, Google … Continue reading “Install Debian MIPS and Debian PowerPC on OSX”