FreeBSD的textdump

| Kernel | Development

最近遇到一些奇怪的bug,因为是对恢复时间有比较高要求的系统,所以顺便研究了一下用FreeBSD的textdump来代替更早前出现的minidump的方法。

阅读全文…( 本文约 754 字,阅读大致需要 2 分钟 )

基于 Supermicro X7SPA-H (Atom D510) 的路由器(1)

| Life

最近找时间做了一个家用的路由器。用基于 Intel Atom 处理器的解决方案并不便宜(与传统的嵌入式解决方案相比),但因为软硬件都是 x86,因此开发起来会方便一些。另一方面,Atom的计算性能要远高于其他的传统嵌入式方案。

阅读全文…( 本文约 585 字,阅读大致需要 2 分钟 )

RTC 与 NTP

| Kernel | #FreeBSD | #ntp

早期版本的 FreeBSD 有一个问题是,如果使用 ntpd 来校准系统时钟的话,如果长期开机,则在重启之后,时间会差很远,之前一直没仔细研究这个问题。最近突然发现 FreeBSD 8.1-RELEASE 里面没有这个问题了,于是翻看了一下代码和之前的一些邮件才明白是怎么回事,总结一下:

阅读全文…( 本文约 762 字,阅读大致需要 2 分钟 )

FreeBSD上的{rd,wr}msr_safe

| Kernel

这几天改 FreeBSDcoretemp(4) 遇到了一个问题。直接使用 rdmsr 的话,如果那个 MSR 不存在,则会触发 #GP(0),不了解 CPU 型号的情况下直接去杵肯定是不行的。后来翻了一下 cpuctl(4) 的代码发现 FreeBSD 上也有 rdmsr_safe。它的实现并不复杂( sys/amd64/amd64/support.S):

阅读全文…( 本文约 364 字,阅读大致需要 1 分钟 )

为什么要用公钥/私钥而不是密码去做SSH身份验证

| Security

SSH提供了很多种不同的身份验证,其中最常用的两种便是密码验证和基于公钥/私钥的身份验证。

基于公钥/私钥的身份验证有非常多的优点。

首先,公钥/私钥可以从根本上挫败监听来截取验证信息的企图。

阅读全文…( 本文约 705 字,阅读大致需要 2 分钟 )

Intel CPU的Tj(max)的获得

| Hardware | #CPU | #monitor | #thermal

本文主要是笔记,不保证其正确性,也不保证其不导致死机、崩溃或任何其他问题。


CPU的Tj(max)值可以通过读 MSR IA32_TEMPERATURE_TARGET,即 0x1a2 来获得【1】。目前,Intel正式的开发文档中并没有明确对这一MSR进行说明。早期的CPU中,Tj(max)值需要加上40到50摄氏度,目前不清楚具体哪些CPU必须如此,但从公开文档来看,已知:

阅读全文…( 本文约 1407 字,阅读大致需要 3 分钟 )

汽车大王亨利福特的名言

| Shared Chaos

“如果我当年去问顾客他们想要什么,他们肯定会告诉我:‘一匹更快的马。’” 这告诉我们:顾客的意见虽然重要,但是只问用户的意见是做不出突破性的新产品的。

参与评论

砍掉了 FreeBSDChina 3万多垃圾的用户

| Security

FreeBSDChina 最近又出现了很多垃圾广告等信息。针对一些常见的灌水机实现了一些临时的workaround,并且删除了大约3万2千的用户。

越忙越有人添乱。

补充:为论坛的链接增加了 rel=“nofollow” 的标记。

参与评论

nginx中的TLS/SSL配置

| Security

nginx可以作为很多种不同的用途。对Web服务器来说,nginx可以直接用作https服务器,也可以用于为现有的http Web服务器作为前端代理和负载平衡的同时提供https之用。

阅读全文…( 本文约 1201 字,阅读大致需要 3 分钟 )

如何:申请用于服务器SSL/TLS的X.509证书

| Security | #secure communication

📓 注意

2015-03-05更新:本文中部分干货已过时,本文本身也不再更新。请参阅 这张作弊条。由于 ACME 协议的普及,现时通常只需生成密钥对即可。

SSL/TLS协议中,服务器证书是用于向客户端证明服务器身份的凭据,同时它还向用户提供了服务器的公钥,而服务器公钥则可以用来建立客户端到服务器的安全通讯(具体的通讯流程要比这个复杂,纯从技术而言,服务器的公钥主要用于与客户端进行会话密钥的协商)。

服务器的公钥只能确保拥有私钥的服务器(或人)能够解密信息,但它本身并不能确认服务器的身份。在实践中有很多种不同的方法来确保公钥确实来自受信任的服务器,在通常的SSL/TLS协商过程中,采用的方法是根据证书链来逐层验证公钥是否是有效的及其身份。简单地说,就是以安全的方法(例如安装光盘,或互相认证的签名等)事先将证书链上的某一个或某几个证书发给客户端,以便其验证最终用于服务器的安全证书。关于这一流程的具体细节,已经有很多文章进行了介绍,在此不再赘述。

如此,我们在实现采用SSL/TLS的服务器的时候,需要为证书准备的事项包括:

有了这些信息,就可以制作证书申请(CSR)供发证机构去签名了。一般来说,发证机构需要首先验证申请人的身份信息,然后对CSR提交的信息进行核对和签名,并将签名之后的证书发给申请者,或供其下载。下面以 FreeBSD、OpenSSL 为例介绍从生成公钥/私钥对到签发、安装证书的全过程。

阅读全文…( 本文约 1666 字,阅读大致需要 4 分钟 )