Belkin F9K1115 v2 (AC 1750 DB) 拆机

昨天不知道为何,路由重启之后系统就起不来了,加上有没有设置reset按钮,不得已把手里的F9K1115给拆了,顺便做个记录,因为看起来网上还没有相关的图片,就当是做个贡献吧。

 

IMG_20160322_012937

把底部的标签撕掉后可以看到第一个螺丝

IMG_20160322_012950

把银色的外圈撬开

IMG_20160322_013016

IMG_20160322_013031

IMG_20160322_013058

第2个螺丝

第3个螺丝

第3个螺丝

剩下的顺着把整个银色的外圈给拆下来

剩下的顺着把整个银色的外圈给拆下来

IMG_20160322_013624

上盖和外圈还有底部支架

上盖和外圈还有底部支架

IMG_20160322_013738

IMG_20160322_013904

IMG_20160322_013928

IMG_20160322_013937

IMG_20160322_013957

看起来有JTAG和TTL

看起来有JTAG和TTL

IMG_20160322_014055

IMG_20160322_014105

IMG_20160322_014336

IMG_20160322_014352

IMG_20160322_014407

接下来该把TTL的针脚给焊上

在openwrt上使用EAP加密wifi

参考资料:

https://wiki.openwrt.org/oldwiki/wpa2enterprise

http://mailing.unix.freeradius-users.narkive.com/6aB8aIhP/eap-mschap-v2-mschap-failed-no-nt-lm-password-cannot-performauthentication

暂时来说,EAP是起来了,但是还是没搞懂怎么用该死的sql来做储存。而且我根据教程用原版配置文件慢慢改出来的配置超他妈神奇的不能接受localhost的请求,偏偏来自其他机器的请求就能收到,真是理解不能。

废话不多说,直接开始:

 

1:替换掉原有的mini工具包,官方出场的固件自带的不支持EAP。如果没有openssl的话,也顺便装上。

opkg remove wpad-mini hostapd-mini
opkg install wpad hostapd openssl-util

2:安装freeradius

opkg install freeradius2 freeradius2-common freeradius2-democerts freeradius2-mod-always freeradius2-m
od-attr-filter freeradius2-mod-attr-rewrite freeradius2-mod-chap freeradius2-mod-detail freeradius2-mod-eap freeradiu
s2-mod-eap-gtc freeradius2-mod-eap-md5 freeradius2-mod-eap-mschapv2 freeradius2-mod-eap-peap freeradius2-mod-eap-tls
freeradius2-mod-eap-ttls freeradius2-mod-exec freeradius2-mod-expiration freeradius2-mod-expr freeradius2-mod-files f
reeradius2-mod-ldap freeradius2-mod-logintime freeradius2-mod-mschap freeradius2-mod-pap freeradius2-mod-passwd freeradius2-mod-preprocess freeradiu
s2-mod-radutmp freeradius2-mod-realm freeradius2-mod-sql freeradius2-mod-sql-mysql freeradius2-mod-sql-pgsql freeradi
us2-mod-sql-sqlite freeradius2-mod-sqlcounter freeradius2-mod-sqllog freeradius2-utils

可以酌情减掉不需要的部分,这次主要用到的有chap eap-mschapv2 eap-tls files这几个。

3.把全部的配置文件备份起来包括/etc/freeradius2/下面的几个.conf还有sites里面的那个default,通通移到别的地方,因为完全不需要这么臃肿的配置文件(而且我试过用了反而连不上这种糟糕的状况)。然后创建下面几个配置文件

radiusd.conf

prefix = /usr
exec_prefix = /usr
sysconfdir = /etc
localstatedir = /var
sbindir = /usr/sbin
logdir = ${localstatedir}/log/radius
raddbdir = /etc/freeradius2
dictionary = /usr/share/freeradius2/
db_dir = ${raddbdir}/db
libdir = /usr/lib/freeradius2
radacctdir = ${logdir}/radacct
confdir = ${raddbdir}
run_dir = ${localstatedir}/run
listen {
        ipaddr = *
        port = 0
        type = auth
}
thread pool {
        start_servers = 1
        max_servers = 4
        min_spare_servers = 1
        max_spare_servers = 3
        max_requests_per_server = 0
}
$INCLUDE  ${confdir}/clients.conf
modules {
        mschap {
                authtype = MS-CHAP
        }
        $INCLUDE ${confdir}/eap.conf
        mschapv2 {
        }
        files {
                usersfile = ${confdir}/users
                compat = no
        }
}
authorize {
        files
        mschap
        eap
}
authenticate {
        Auth-Type MS-CHAP {
                mschap
        }
        eap
}

clients.conf

client 127.0.0.1 {
        secret          = thisisafuckingsecrectpasswordyoudontknow
        shortname       = localhost
        nastype     = other     # localhost isn't usually a NAS...
}

eap.conf

eap {
        default_eap_type = peap
        timer_expire     = 60
        ignore_unknown_eap_types = no
        cisco_accounting_username_bug = no
        mschapv2 {
        }
        tls {
                rsa_key_length = 2048
                dh_key_length = 1024
                private_key_password = whatever
                private_key_file = ${raddbdir}/certs/radius.key
                certificate_file = ${raddbdir}/certs/radius.crt
                CA_file = ${raddbdir}/certs/radius.crt
                dh_file = ${raddbdir}/certs/dh
                fragment_size = 1024
        }
        peap {
                default_eap_type = mschapv2
        }
}

PS:记得创建证书和dh文件

openssl req -x509 -newkey rsa:2048 -keyout radius.key -out radius.crt -days 3650
openssl dhparam -out dh 1024

user

DEFAULT Group == "disabled", Auth-Type := Reject
 Reply-Message = "Your account has been disabled."
fruser Cleartext-Password := "fruser"
 Reply-Message = "Hello, %{User-Name}",
 Fall-Through = no

PS:如果后面还有其他的用户,Fall-Through就用yes,否则用no

配置文件都写好之后,用 radiusd -XX 来检查服务器是否能够正常工作。如果没问题的话就下一步,如果有问题……自己google吧。

3:修改openwrt的无线设置,选择EAP作为加密方式,就像下面这样

捕获

保存并应用,搞定收工。

CentOS安装32位wine

最近给小主机换成了CentOS,感觉人性化了非常多(虽然软件仓库还是缺少很多挺好用的货),于是就顺手想把wine给装上(我才不会乱说因为跑个有毒的game.exe中招了于是顺手换系统),于是出现了奇怪的问题,大量exe文件无法运行,报告一个错误

fixme:service:scmdatabase_autostart_services Auto-start service L"MountMgr" failed to start: 2
wine: Bad EXE format for Z:\home\ferrets\桌面\winbox.exe.

而且,wine的配置器也报告了类似的问题。

2016-02-09 18-29-46 的屏幕截图

经过一番Google,在CentOS的论坛上找到了答案,因为某些上游开发者的决策“要保持CentOS的64位纯洁性”,而砍掉了32位支持,只要去装个32位的wine就能解决。于是我找到了这篇教程

非常典型编译过程:

先安装工具包

yum groupinstall 'Development Tools'
yum install libX11-devel freetype-devel zlib-devel libxcb-devel

然后,下载源码,解压:

cd /usr/src wget http://dl.winehq.org/wine/source/1.8/wine-1.8.tar.bz2
tar xjf wine-1.8.tar.bz2

解压之后configure:

32位系统用: ./configure
64位系统用: ./configure --enable-win64

最后编译和安装:

make
make install

装完了运行一下作个测试。

32位系统运行:
# wine --version

64位系统运行:
# wine64 --version

不出什么意外的话安装就完成了

PXE启动debian安装器

参考:https://wiki.openwrt.org/doc/howto/tftp.pxe-server

http://ftp.debian.org/debian/dists/stable/main/installer-i386/current/images/netboot/pxelinux.cfg/default

在家里做了个PXE服务器

刚才把那台10年历史的老电脑翻了出来,着磨着这烂XP也该换掉了,想了想,打算换成debian,由于懒得做安装盘于是果断选择走PXE,大概是因为后来主板换过了,居然支持PXE启动,好了。着手安装。

看了一下debian的安装wiki,教程里面自带一份pxelinux.cfg/default的配置文件,但是我不想覆盖掉之前的版本,于是展开了看一下

debian-installer/i386/boot-screens/menu.cfg

这个文件,里面指向了四个文件

include debian-installer/i386/boot-screens/adtxt.cfg
include debian-installer/i386/boot-screens/amdadtxt.cfg
include debian-installer/i386/boot-screens/adgtk.cfg
include debian-installer/i386/boot-screens/amdadgtk.cfg

于是在adtxt.cfg里面找到了kernel和append字段

kernel debian-installer/i386/linux
append priority=low vga=788 initrd=debian-installer/i386/initrd.gz ---
include debian-installer/i386/boot-screens/rqtxt.cfg

果断的选择将这俩字段添加到之前的default里面,然后net installer就跑起来了。没有nfs服务器出场的机会呢。

windows server上nfs服务器的匿名访问

参考:http://www.cnblogs.com/mannyzhoug/p/3546160.html

最近重新部署了pxe,考虑到性能,扔掉路由,改用小主机当nfs服务器,但是,却遇到了非常诡异的权限问题,在这里记录一下。

在nsf共享了文件夹之后,遇上了input/output error,但是能够正确的显示磁盘空间,这让我非常纠结,明明文件夹已经提供了访问的权限,为什么还是会有这样的问题呢?

最后发现,是一个ntfs的权限出了问题……参考解决办法:

nfsfile /v /ru=-2 /rg=-2 /s /cx e:\test
操作 NFS 文件的服务属性。

NFSFILE [/v] [/s] [/i[[u=<uid>]|[g=<gid>]|[wu=<account>]|[wg=<account>]]] [/r[[u=<uid>]|[g=<gid>]|[m=<mode>]]] [/c[w|x]] <filespec>

/? - 此消息

/v - 详细

/s - 扫描子目录查找匹配的文件

/i - 包括与指定标准相匹配的文件

u <uid> - NFS 所有者 SID 匹配<uid>

g <gid> - NFS 组 SID 匹配<gid>

wu <account> - NFS 所有者 SID 匹配<account>

wg <account> - NFS 组 SID 匹配<account>

/r - 替换文件上指定的选项

u <uid> - 设置 uid

g <gid> - 设置 gid

m <mode> - 将模式位设置为<mode>

wu <account> - 设置 Windows 所有者帐户

wg <account> - 设置 Windows 组帐户

/c - 转换文件依据

w - Windows 样式 ACL (已映射)

x - Unix 样式 ACL (未映射)

然后就能够正常访问了。

今日又收到封骗暴雪账号的邮件,兴致来了于是查了一下

blizzard这种东西已经收过好几次了,今天闲着没事就去查了一下,发现还真是有很多有趣的东西

还是让你去点链接登陆账号click但实际上,实际上的链接和文本上根本不一样,实际上的地址是:http://rahamathr.us.ahads.science/login/en/login.html.asp?ref=https%3A%2F%2Fus.battle.net%2Faccount%2Fmanagement%2Findex.xml&app=bam

嗯,没有https链接,而且是个很神奇的域名,top域名是.science,科技哎。

继续阅读

AWS:穷人不要用

前几天我在AWS的竞价请求莫名出问题了,我设定的价格是0.02每小时,在我查询当前价格的时候看到的也是0.003没小时,但是AWS却告诉我说价格超出设定值,实例被暂停了。然后我重新提交了一个一模一样的申请,结果却能顺利运行。

我提交了工单,但是3天没人理,优先级是低,这是我见过最糟糕的支持工单了。

想想前几个月忘记了AWS的流量政策结果在上面跑了个吃流量的货结果导致当月消费178刀,简直酸爽的难以置信。

得出来的结论就是,AWS这东西,穷人玩不起。

然后我又滚出AWS,跑到vultr去了。结果又丢了几篇文章。

windows上的log服务器

这2天想着,家里设备都已经一大堆了,想想看能不能有个统一的管理,反正那台小主机闲着也是闲着,就用来挂下载似乎有点浪费,而且也没那么多东西可以下。

暂时来看,可以玩的有2个,一个是syslog,还有一个是snmp。

先从syslog下手。虽然Google得来的结果把我指向了一个叫做PRTG的这么一个东西,这个其实是个network monitor,跟syslog什么的没什么关系,这个晚点再写文章。

先是找到一个叫做splunk的东西,看起来超专业的,于是很明显我不会用,结果研究了一阵子之后,卸载了。

后来找到一个叫做syslog watcher的,界面简洁(lou)明了,很符合目前所需的要求,而且体积也小很多,于是果断一试。

惯例先上参考:

http://www.howtogeek.com/107069/how-to-remotely-collect-server-events-using-syslog/

https://aacable.wordpress.com/2011/11/29/howto-save-mikrotik-logs-to-remote-syslog-server/(GFWed注意)

安装过程很简单,直接同意并确认“我没看过这么一大串英文”之后安装好运行,然后点击左上角的那个collect,然后服务器端就配置完成,简单的简直丧心病狂。

syslog watcher

然后就是客户端的配置:

————————————DD-WRT————————————-

找到“服务”,然后在服务的页面找到syslogd的设定位置,启用并填上远端服务器的地址,然后保存,应用设置。搞定。

syslog1

————————————-OpenWRT————————————

openwrt也一样简单,系统-系统-日志,填上远程服务器的ip就ok。

syslog-openwrt保存并应用之后,在syslog服务器上暂时不会看到有输出,因为luci不会自动重启log服务,手动/etc/init.d/log restart或者通过luci来重启那个叫做“log”的服务就可以了。

——————————–RouterOS————————————————–

家里用着一只RouterBoard作为骨干路由,当然是少不了RouterOS,RouterOS的设定比另外2个繁琐一点,不过设定上也细致一点,算是各有个好啦。

browse.php找到system-logging,然后从窗口里找到actions页,双击remote来修改设定。

填上log服务器ip,勾上“BSD syslog”,syslog facility选择“local0”,ok确认设定后,切换回“rules”页面,然后将你想要的那些topics要送去remote。

于是所有的log都能在syslog watcher那里看到了。

新玩具到手,Buffalo WZR-1750DHP

突然发现很久都没折腾过路由了,手上一直上个世代的WZR-HP-AG300H一直服役的很好,有线千兆和150Mbps+300Mbps无线的组合基本上非常够用,文件服务已经转交到一只迷你主机上(给这货上了Windows再加个显示器结果变成了主力机器真是感觉伤不起)。而且这只AG300H还创造过uptime200+日的记录然后被一次停电终结了。

最近开始瞄中这个WZR-1750DHP,128MB的Flash+512MB的RAM+800Mhz的ARM双核感觉堪比那只闲置的RaspberryPi B,但是看到淘宝最低的报价都超过500还是让我一阵犹豫。结果没过多久就看到有家报价报380(当然是二手货),比我3年前入手AG300H(当然还是二手货)的时候还要便宜20,果断入手了。

到手之后发现店主很好心地帮忙把机器固件升到了最新的2.27,这是个非常坑爹的固件,我尝试使用网页刷DD-WRT的时候,告诉我,不能刷到版本比2.27低的固件。坑爹呢这是,我买回来就是要用第三方固件的啊!拿原厂固件这货有个毛用啊,这配置上傻瓜路由固件简直是天大的浪费啊。

在做了大量的Google之后,发现很多人有相同的问题,也有的人表示我这样照刷没问题啊怎么你刷就有问题呢。还有的说你找Buffalo的技术人员就可以啦,然后又有人说这个不行啦,太多人找他们了,然后他们也表示不能再给我们这样搞。找来找去都并没有找到什么靠谱的解决方案。

error_after_227_612

在一阵子不死心之后,我还是没找到刷固件的方法。然后我就想起了之前对AG300H的hack,TTL接口登陆真是个好东西。于是我开始琢磨怎么打开这货。

大概是这货还是比较新的东西,Google上的资料比较少而且需要仔细甄别,在研究了一个小时之后,我发现了这篇还有这篇,才找到了打开盖子的方法(真是纠结)。

给张正面特写(摘自网络,型号不是1750DHP)Opening-3大概是我手艺不精,反正我是和恩山上的那位大大一样,暴力KO了一堆卡扣才打开了盖子,还有中间CPU粘着的散热片是固定在盖子上了,开的时候慢慢来。

打开了之后,照着这篇TTL登陆到CFE然后强行刷掉了原厂固件之后,DD-WRT就搞起来了。

附上Google来的TTL定义wzr1750dhp_3_serial_929

半路上发生了一个诡异的情况,当我跳好TTL后,上电无法开机,只有在启动之后再插上杜邦线,才能正常使用,这令我百思不得其解,不过还是能用于是就先不管了。

不知是天性使然还是我和DD-WRT八字不合,用起来我表示DD-WRT这管理方式非常不习惯,想刷回Openwrt,但是刷回Openwrt之后看起来RC3还是跟wiki里面的RC2一样没有解决无线的问题。这……尼玛死,我要不要刷回DD呢,我现在非常纠结。