May 2011 Archives

以前一直没注意过这个问题,今天在邮件列表看到 Matthew Flemming 发的邮件才知道实际上 C 标准并不保证 sizeof(void *) == sizeof(int(*)(void))。不过,几乎所有的现代系统上这个等式都是成立的。

例外的情况是类似 x86 实模式这类分段的内存模型中,函数指针可能默认是个far pointer(不过话说,现在还有人为这样的硬件写C吗?);另外据说IA64上也不一样,不过没有办法证实或证伪。

这次休假前头一天晚上收到了 ISC 发来的安全公告 CVE-2011-1910。我起草完 FreeBSD 安全公告 FreeBSD-SA-11:02.bind.asc 之后就去休假了,这里补上这个漏洞的说明。

无论你是否使用 DNSsec,只要用 BIND 9.x 来做 DNS 缓存解析服务(而不仅仅做Authoritive DNS服务),就有可能受到这个漏洞的影响。而攻击的方法也相当简单,攻击者只要建立一个 DNS 域,令在回应域名不存在的同时发回一个大的 RRSIG RRset,即可触发 BIND 的某处断言令其退出。

由于目前坊间已经出现了针对这一问题的攻击,FreeBSD 安全团队在收到 ISC 安全公告之后立即发布了对应的安全公告和二进制更新。使用受支持的安全分支的用户可直接用 freebsd-update 获得更新,安装之后使用 /etc/rc.d/named restart 重启服务即可。

APC BE550G 是一种廉价的UPS,支持以 USB 线通知被保护的系统或查询状态。

在 FreeBSD 上可以用 apcupsd 来配合 USB 通知使用。

去年大河发生过一次停电事故,所以买了一个 UPS 来配合自己的机器;今天大河又来了一次大约90分钟的停电,算是完成了对 UPS 的完整测试。

UPSCABLE usb
UPSTYPE usb
DEVICE
POLLTIME 60
LOCKFILE /var/spool/lock
SCRIPTDIR /usr/local/etc/apcupsd
PWRFAILDIR /var/run
NOLOGINDIR /var/run
ONBATTERYDELAY 6
BATTERYLEVEL 8
MINUTES 3
TIMEOUT 0
ANNOY 300
ANNOYDELAY 60
NOLOGON disable
KILLDELAY 0
NETSERVER on
NISIP 127.0.0.1
NISPORT 3551
EVENTSFILE /var/log/apcupsd.events
EVENTSFILEMAX 1024
UPSCLASS standalone
UPSMODE disable
STATTIME 0
STATFILE /var/log/apcupsd.status
LOGSTATS off
DATATIME 0
FACILITY DAEMON
SENSITIVITY H
WAKEUP 60
LOWBATT 02
SELFTEST 336

上述设置中比较重要的:

  1. 采用USB接口
  2. 每60秒轮询一次UPS状态
  3. POWERFAIL和NOLOGIN文件放到/var/run(实际上并不需要)
  4. 等待6秒才开始真正的ONBATTERY操作:如果电源只是短暂地发生瞬断则不做反应。
  5. 当停电导致电池剩余容量低于8%时,立即执行关机操作。
  6. 当停电导致剩余容量低于3分钟时,立即执行关机操作。
  7. 禁止按掉电时间为关机判断条件。
  8. 每5分钟(300s)警告一次登录的用户系统发生掉电。
  9. 首次掉电后1分钟(60s)告知登录的用户发生掉电。
  10. 禁止在掉电时阻止用户登录。
  11. 禁止apcupsd关闭电源。
  12. 启用NIS服务(提供让munin收集的UPS数据)。
  13. NIS服务监听127.0.0.1:3551。
  14. 在 /var/log/apcupsd.events 中记录"事件"。
  15. UPS在供电恢复后等待60秒再恢复对设备的供电。
  16. 每两周进行一次自检。

其他一些数据:

  • 目前的UPS负载大约是20%-30%(110V,大约0.9A),在使用电池时大约可坚持20分钟;
  • 充电到UPS认为充满大约需要8个小时;
  • 这款UPS在未发生掉电的时候返回的负载值是0;

冒个泡

| 4 Comments | No TrackBacks

最近忙得要死,今天看到 谷奥消息Google Analytics 可以抓访问时的速度数据了,于是部署了一下。

另外,十年以后突然跟你要大学专业课介绍的国家真的伤不起。

Monthly Archives

Pages

OpenID accepted here Learn more about OpenID
Powered by Movable Type 5.2.3