Canary Workshop

Whatever is worth doing at all is worth doing well

Debian下完整邮件服务器的安装、配置

几个月时间断断续续折腾出来了一台完整的邮件服务器,在这里记录一下安装流程以备参考。

真的很麻烦!真的很麻烦!真的很麻烦!
左转第三方邮件,右转iRedMail

套件组成主体:

  • Postfix - SMTP服务器
  • Dovecot - IMAP/POP3服务器
  • MariaDB - 数据库
  • SpamAssassin - 反垃圾邮件
  • ClamAV - 杀毒工具
  • RoundCube - Web端程序
  • nginx和PHP - Web环境
  • OpenDKIM - DKIM工具

本文使用全新安装的Debian 9 x64操作。

本文参考了中、英、日文互联网上的大量教程、博文、问答、讨论,其中主体部分参考DigitalOcean文档中的教程。本文最终希望打造一台拥有基础收发功能、抗垃圾、抗病毒、易用的邮件服务器。本文部署的服务均使用TLS,认为SSL证书和私钥分别位于/etc/ssl/mail/mail.crt/etc/ssl/mail/mail.key。安装时为方便操作,直接使用root用户执行命令。

下面开始安装吧

Debian 9下使用Bind9的分地区解析功能

自从去年CloudXNS翻车后,就逐渐将DNS挪到了HE.net,后来又迁移到自建的DNS上。但按国家、大洲甚至时区等解析的功能始终无法实现,于是就折腾了一下Bind9的GeoIP功能,总结了一下其中的坑,在这里记录详细的配置过程。

期望的目标:

  • 对于来自亚洲、欧洲、北美洲的请求分别返回服务器A、B、C的地址
  • 对于来自中国的请求无视上面的亚洲设置,直接返回服务器D的地址
  • 对于来自其他地区的请求,返回服务器E的地址
  • 措施一定的抗攻击措施

以下步骤在全新的Debian 9 x64上测试通过。

Debian 9 + nginx + PHP 7 + MariaDB环境下的ownCloud安装配置

很早以前,当我还在用Apache2的时候,我曾经安装过ownCloud,但那时没有服务器空间存储文件。现在有了一台大硬盘的存储型VPS,搭建ownCloud便又一次提上了日程。ownCloud官方推荐的WebServer环境是Apache2,各类教程也基于之编写。我因为已经习惯nginx,便想设法让其运行于nginx之上。这并非不可以,但前前后后居然折腾了数个小时,ownCloudnginx上运行的配置堪称坑!坑!!坑!!!为了给以后的安装留下参考,我在这里记录下安装的详细过程。

服务器端Transmission的替代品:Cloud Torrent

之前为了在校下载文件和下载一些被天朝【哔】掉的资源,我在服务器上搭建了Transmission,表现良好。但Transmission的功能太强大,有许多我用不到的功能,因此我换用了更轻量级的BT客户端Cloud Torrent。这是一个极简的BT客户端,相比Transmission有如下优点:

  • 由Go语言写成,仅有一个二进制文件,极为轻量级
  • 资源占用小
  • 界面简洁易操作
  • 下载完毕后直接给出HTTP链接,更便于拖回本地

这些特性正好符合我的需求,于是我卸载了Transmission换用Cloud Torrent,使用supervisor守护运行,并用nginx作为反向代理以便于访问和添加HTTPS支持。以下步骤在Ubuntu 16.04.3 LTS x64的服务器上测试通过:

KVM VPS的全盘备份与恢复

事情的起因是,VPS又爆炸了。。。

虽然说整个服务器爆炸到必须重装的事情遇到的也不少了,但天天重装也不是个办法。现在很多VPS服务商不提供备份服务,仅自己备份数据仍然无法免除重装的麻烦。服务器恢复之后,痛定思痛,明白需要找到个合适的备份方法。于是有了通过SSH进行dd的方法。

Ghost换到Hexo的各种坑

又双叒叕换CMS了。

陪伴了我9个月的Ghost终于退役了。Ghost的确不错,但是某些地方差强人意,例如极为麻烦的升级,花式的报错,还有几乎为0的扩展性。而这些恰恰是Hexo拥有的,因此我最后决定用Hexo代替Ghost。虽说都是基于Node.js的,但其中还是有不少坑的,前后折腾了大约6小时才完成。

初探nginx+TLS 1.3

春天到了,又到了交配折腾的季节。

一直以来我都在关注TLS 1.3的进展。TLS 1.3作为新一代的安全标准,对比前代的提升是巨大的(参考Cloudflare对于TLS 1.3的介绍)。可惜长期以来这个协议都在草案阶段(从IETF文档上来看从2014年至今,且目前仍未最终定稿,只是已经打到最后阶段并且有了相应的实现),并不能真正部署。今天早晨获悉OpenSSL 1.1.1的测试版发布了,带有TLS 1.3的支持。其实火星了一个月

嘛,无论如何,既然已可以部署,那就部署来看看于是拿出了吃灰的NyaBoom的闲置VPS。下面是完整的部署过程。整个部署基于全新安装的Ubuntu 16.04.2,而且仅仅部署HTTPS相关的最基本模块。

截至目前,OpenSSL 1.1.1仍处于测试阶段,而且TLS 1.3协议本身也尚未定稿,因此下面的操作具有不可预料风险,极不建议在生产环境的服务器上部署。

那么,一切就位,开始吧!

OpenVZ下的User Mode Linux运行实战

近来有人折腾出了OpenVZ下通过User Mode Linux运行高版本Linux内核的虚拟系统进而开启BBR给一些黑科技加速。我在这里也尝试了部署,并解决了网上教程的一些问题,现在记录在这里。

[施工中]小米路由器3的折腾

半年前就在使用小米路由器3,但一直将其作为一个纯粹的老式路由器而未折腾。今天成功打开了其SSH并安装了opkg,使之成为了真正的“智能路由器”。现将过程记录在此。