DD-WRT vs OpenWRT vs FreshTomato

最近把两个闲置的 Netgear R6300 v2 刷了几次 WRT 和 Tomato firmware,意在用它们代替 Draytek 2860n/2910 组建 site-to-site VPN,同时用上 VLAN。 题外话:Draytek 2910 只支持百兆网口,Draytek 2860n 虽说都是千兆网口,但 WAN throughput 仅在 300 mbps 左右,归根到底是一款 DSL 年代的产品,已经跟不上时代的。认识 Draytek 十多年,本是 Draytek 忠实的客户,买过它几十个产品,都有不错的表现,除了最后一批 Draytek AP910C 令我失望。最近升级路由器,本也考虑过 Draytek 3910,但最终选了 Mikrotik CCR1036。认识了 Mikrotik 一个多月,有比较就有伤害,突然就觉得 Draytek 格局太小,以后不会再买。Mikrotik 有点贵,暂时不想用第二台 Mikrotik 组建 site-to-site VPN。 我最先把 Netgear R6300 刷了 DD-WRT,读了几篇 wiki,说 VLAN… Continue reading DD-WRT vs OpenWRT vs FreshTomato

Mikrotik hybrid VLAN port

我就想吐槽一下自己,我整整一个圣诞到新年的假期,都在研究如何在 Mikrotik router 上做一个 hybrid VLAN port。其实我可能第一天就做出来了,但是怎么都不生效,让我觉得可能自己还不会设置,反复调整,直到今天我才发现,原来是忘了 Mikrotik router 和我的目标设备之间还有一个 EdgeSwitch。 之前我创建了 VLAN trunk,我想在此基础上加一个 untagged VLAN,以便进入一对未设定 management VLAN 设备 Metrolinq 的管理界面。 我完全忘了这一对 Metrolinq 并有没有直接接入 Mikrotik router,而是接入了 EdgeSwitch,EdgeSwitch 再接入 Mikrotik router。这也是最近网络基础设施大升级的一部分,这么做的好处是用 EdgeSwitch POE 供电给 Metrolinq,抛弃 Metrolinq 原配的 POE adapter,因为我感觉原配的 POE adapter 似乎不太稳定,发生过多次莫名其妙的断网,靠重启 POE adapter 恢复。 所以,不管我在 Mikrotik router 做什么调整,EdgeSwitch 仍是原来那个 VLAN trunk,新增的 untagged VLAN 根本到不了 Metrolinq。… Continue reading Mikrotik hybrid VLAN port

Windows cannot access WD Mybookworld CIFS share problem resolved

我有一台 Windows 10 家庭版的电脑,无法访问 WD Mybookworld CIFS。具体症状是访问 \\wd_ip_address 就被拒绝,但该 IP 地址可以被 ping,也可以访问 WD Mybookworld 的 web UI。 为了找出问题所在,我进行了完整的交叉替换测试。我先试着用它借用一个 IP 访问 WD Mybookworld CIFS,被拒绝,该 IP 在其他电脑上使用正常;然后用它来访问同一网络内的另一台 NAS 下的 CIFS,这是一台自建的 NAS,装的系统是 FreeNAS,可以访问;接着用另一台 Windows 10 家庭版的电脑访问了 \\wd_ip_address,也能访问。所以问题仅限于一台特定的电脑访问特定的 NAS,查看了 WD Mybookworld 里的设置,没找到能拒绝特定 IP 访问的设置,即使有,似乎也不太可能做过这样的限制。 找啊找,最后发现是 Windows 10 “SMB 1.0/CIFS File sharing support” 被关闭了,需要在控制面版 >> 程序和功能 >> 启用或关闭 Windows 功能里重新启用。估计… Continue reading Windows cannot access WD Mybookworld CIFS share problem resolved

Do not run Asterisk as root user

我用的 FreePBX 带的 Asterisk 是很久以前安装的,也没有关心过它是不是以 root 身份运行,直到最近被攻击。 攻击的症状是有大量的流量访问,伴随流量不停在 /tmp 目录下生成 1-2 GB 的垃圾文件,产生文件的速度似乎跟流量大小相关。 我不懂此次攻击的原理,但我发现原来一直以来 Asterisk 都是以 root 身份运行,我也知道这不合适。同时我也发现系统里早已有 asterisk 用户和 asterisk 组,程序、配置文件和文件夹的属主和属组都已是 asterisk 和 asterisk,也许攻击者对 Asterisk 做了提权。 不管怎样,我得先把 Asterisk 改为非 root 身份运行。因为我的 Asterisk 以 service 方式启动,所以我在 /etc/init.d/asterisk 里增加了两行: AST_USER=”asterisk” AST_GROUP=”asterisk” 重启就 OK 了。流量正常了,/tmp 下也不再生产垃圾文件,但不知道攻击有没有消失,至少漏洞堵上了。 在堵漏洞的过程中还有个插曲:一开始还不清楚是不是操作系统层面的漏洞,我一上来就来一个 yum update -y 结果重启后发现系统瘫痪了,连 ssh 也进不去,只好用 console 登录,发现尝试用 service 启动任何服务时都会出现类似的错误信息。… Continue reading Do not run Asterisk as root user

Magento site was compromised

It was my first time to see a hacker is close to me. I was flooded with notification emails from Google Adsense subjected “Your AdSense Publisher Policy Violation Report” from yesterday afternoon. I immediately tried to visit either blog.goods-pro.com or goods-pro.com to see what was going on. I got a scary warning message saying either… Continue reading Magento site was compromised

Call to undefined function music_list()

今天在 FreePBX 里试图编辑一个分机,点了编辑结果出现一个错误:Call to undefined function music_list()。 好端端怎么有了这么个错误?后来发现是没有安装 Music On Hold 模块的缘故,安装并启用这个模块,错误就消失了。 可是我不需要 Music On Hold 模块啊,记得之前也是为了应付一个错误安装了不需要的 Call Recording 模块。这样下去,模块越装越多,直到某一天 FreePBX 崩溃……

Zoiper cannot stay online on mobile phones

Zoiper 是我青睐的一个 VOIP 客户端,最大好处是它同时支持 SIP 和 IAX2 协议,最大坏处是它太想捞钱,竟然把视频通话功能归入收费版本。 言归正传,我在使用 Zoiper 过程中,发现 Zoiper 里的 SIP 或 IAX2 帐号在手机上不能稳定在线,通常是在手机屏幕熄灭 5 秒钟进入锁屏状态(默认设置)后,Zoiper 就掉线了;如果锁屏前 Zoiper 是当前窗口,则在锁屏后存活的几率大大提高,但仍免不了掉线。 另外有几个发现: 如果在平板上使用 Zoiper,则非常稳定。 在 Huawei P8 手机上使用 Zoiper,也非常稳定,真是个奇迹。性能更好的 Mate 7, Mate 8 在这方面都不如 P8。 在绝大部分手机上使用 Zoiper,一旦掉线,Zoiper 不会(或看上去不会)自动重试上线。 手机在充电时使用 Zoiper,则比不充电时要略稳定。 如果 Zoiper 不稳,那我就无法把重要来电转接到 VOIP。所以我花了点时间一一对比了 P8 和其他手机上 Zoiper 的设置。虽然我仍未发现 P8 上 Zoiper 能站稳的原因,但我发现,在电源省电管理里,给 Zoiper 选中“锁屏后保护进程”对其稳定在线是有好处的。默认未选中,P8… Continue reading Zoiper cannot stay online on mobile phones

FreePBX 13 does not work on php 7.0.1

前几天安装 Magento 2,竟然说要 php 5.5 以上版本。本不追新的我,想到反正要用到 remi repo,那就装个最新的 php 7.0.1。结果 Magento 2 倒是能运行,但 FreePBX 13 的 web UI 出不来了,显示成空白页。我估计是 FreePBX 所用的 php 语法不够规范,简单排查了一下,根本没看出是哪里的毛病。我估计对 php 7.0.1 来说,FreePBX 到处是毛病。虽然此时 asterisk 仍正常运行,但我不能让 web UI 长期瘫痪啊,赶紧找了个时间拆了 php 7.0.1,换上了 php 5.6。这是目前兼容性最好的版本,FreePBX 和 Magento 2 均能运行,证明对 php 环境不能过于追新。

Install Freepbx 13 on CentOS 7

FreePBX Wiki 有一篇关于如何在 CentOS 7 上安装 FreePBX 13 详细的指导。我不想重复具体的步骤,只想说说如何解决在安装后出现的问题。 我在 OpenVZ VPS 的 CentOS 7.0 minimal 环境下依次执行了 FreePBX 13 安装指导的各项命令,期间并没有发现问题,下载、编译都很顺利。安装完成以后,发现虽能访问 FreePBX web UI,但对 FreePBX 进行的第一项测试——添加一个分机,就卡住了——注册不了。这时 VPS 还未重启过,虽然指导上没有让重启,那就重启一下看看呗。重启之后,更糟,首先发现 FreePBX web UI 访问不了,然后发现 ssh 也登录不了,最后发现连 ping 也不响应。只好用 serial console 登录后排查,发现 network 服务没启动,手动重启 network 服务也失败。 我只好把安装步骤分解,首先定位到是 yum groupinstall core 群组件造成 network 服务启动失败,然后再分解,发现是其中的 selinux* 和 NetworkManager 两个软件包的问题。定位这两个软件包花了我很长时间,这里按下不表。幸好这两个软件包也不是 FreePBX 所需要的,所以把它们卸载之后,network… Continue reading Install Freepbx 13 on CentOS 7