SysAdmin

共16篇文章。

整理BIND 9配置:把琐碎的子域合并为一个zone

• SysAdmin

我的权威DNS跑在BIND 9上,采用Hidden Master架构,并开启了DNSSEC的inline-signing。

家里用不同的VLAN和网段做了隔离。早期规划时,我简单地把网段和子域做了一对一映射,每个子域都是一个独立的zone:

flowchart LR
    root["example.net
(主域名)"] sjc["sjc.example.net"] root --> sjc sjc --> guest["guest.sjc.example.net"] sjc --> iot["iot.sjc.example.net"] sjc --> tiot["tiot.sjc.example.net"] sjc --> t["t.sjc.example.net"] sjc --> ut["ut.sjc.example.net"]

这些子域基本都由内网的DHCP服务器通过动态更新(RFC 2136)维护。这样,在内网访问某台机器时,不必去查它拿到了什么IP地址,直接用主机名加上所在的VLAN就行。不过时间长了,这套配置带来了很多不必要的维护负担:

  1. 每个zone都有自己的一套DNSSEC密钥。我配置的dnssec-policy为每个zone生成一把Ed25519(RFC 8080)CSK,对应K*.key、K*.private、K*.state三个文件,目录里还堆满了各种.signed、.jnl和临时的.jbk文件。
  2. 每多委派一个签名子zone,父zone就得多维护一组NS和DS记录。密钥轮换时,如果旧DS还在缓存里,对应的DNSKEY却已经撤下,验证就会失败,客户端看到的就是SERVFAIL。
  3. named.conf里写满了大同小异的zone声明和ACL,Hidden Master后面的每台辅DNS服务器上,也都得再为它们各配一遍。

这些子域都由同一台DHCP服务器、用同一把TSIG密钥更新,拆成独立的zone在安全性方面没有必要。

今天花了些时间撤销这5个子域的独立zone和委派,把记录并进sjc.example.net。主机名不变,例如myhost.iot.sjc.example.net依然按原样解析,只是不再单独维护iot.sjc这个zone。

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

portsnap镜像的另一种实现方法

• SysAdmin

FreeBSD 5.5和6.1开始内建了 portsnap,portsnap是一种新的 ports 套件同步机制。

与传统的 cvsup 更新方式相比, portsnap 有一些优越性:

  • 对于经常进行更新的情况,portsnap很快:portsnap包含索引和具体的ports两部分,在更新的时候它首先会更新索引,而具体的更新则是下载两次索引描述的文件之间的差异,因此可以大大节省带宽。
  • portsnap有数字签名:cvsup并不包含任何加密或数字签名的机制,而portsnap的公钥则是通过光盘发给每一台机器的,相对来说安全性要好的多。
  • portsnap使用HTTP协议:通常,企业防火墙并不会拦截HTTP。

早先,架设portsnap镜像的方法比较复杂。由于portsnap的设计,架设portsnap镜像所产生的流量,在通常情况下大约会是仅做portsnap操作的3000倍左右。

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

给自己的邮件系统做了个webmail

• SysAdmin

昨天回家想看信,但是因为信箱里面的邮件实在太多,因此使用一个标准的MUA并不现实,于是架了一个RoundCube出来。这个Webmail系统功能不算多,不过该有的几乎都有了……

参与评论

域名注册服务提供商的选择

• SysAdmin

转载请注明出处: https://blog.delphij.net

注意:本文内容已经过时,不再更新。最新内容请参见我在2023年6月的这一篇。

域名服务与邮件服务一样,是非常重要的互联网基础服务。与几年前动辄每年几十$,到现今最低至1.99$的注册服务,域名注册服务商能够从中获取的利润也越来越少。

为了解决利润的问题,多数域名注册服务提供商(Registrar)会捆绑销售一些其它的产品,例如虚拟主机、企业邮箱,乃至新兴的个人blog等等。透过这些服务,他们能够获取更多的利润,同时,这些服务也满足了一些不愿或不会自己架设域名、主页、邮件服务器的用户的需要。幸运的是,这些用户占全部用户总数中的绝大多数。

这里将要讨论的是愿意花费时间精力,并且有能力自己架设域名解析、主页和邮件等服务的用户的需求。首先,架设域名解析等服务器是需要有一些投入的,另一方面,在这种情况下,往往域名注册服务提供商提供的其它服务,例如虚拟主机等,就不再是必要或完全是多余的了,因此,此时价格、可靠性等就成了最大的决定性因素。

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

一次postfix在线升级

• SysAdmin

没啥技术含量,做个笔记而已。

相关日志如下:

Jan 11 22:19:02 tarsier postfix/postfix-script: stopping the Postfix mail system
Jan 11 22:19:02 tarsier postfix/master[92875]: terminating on signal 15
Jan 11 22:19:02 tarsier postfix/postfix-script: starting the Postfix mail system
Jan 11 22:19:02 tarsier postfix/master[70250]: daemon started – version 2.2.8, configuration /usr/local/etc/postfix

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

HOWTO: upgrade OpenLDAP from a major release to another

• SysAdmin

Just for reference for future upgrades.

Today I managed to upgrade from OpenLDAP 2.2.29 to OpenLDAP 2.3.11. This is a large upgrade, so all and foremost thing is to backup. Additionally, to keep downtime as less as possible, build these stuff first!

On FreeBSD, the recommended way of installing third party software is to use ports(7). Note that OpenLDAP is separated into two ports, openldap2X-server and openldap2X-client, and building the server requires the client library, therefore, you can not easily do build on the production server (and this SHOULD be avoided anyway).

A solution is to use a separated box (or jail for smaller deployments), to build packages and use pkg_add to install them.

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

成功地在公司消灭了第一组qmail服务器

• SysAdmin

感恩节那天,正式完全彻底地消灭了第一组公司的qmail服务器,并全线替换为FreeBSD 6.0+postfix。这是公司邮件服务的一大进步。

再也没有恶心的代码,拥堵的队列,缓冲区溢出、各式各样的hack、裹尸布一样的千层补丁,再也没有signal 11和大批大批的垃圾邮件了!!!

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