龙蜥 Anolis Linux 23 源代码编译安装 Dovecot

admin 2024年4月24日08:04:02评论5 views字数 6472阅读21分34秒阅读模式

本篇是继上一篇:

经典有效的日志监控邮件集中巡检 Linux 服务器

的补充。

龙蜥 Anolis Linux 23 源代码编译安装 Dovecot

实话,我已经依赖于发行版预编译软件包好久了,甚至最后一次运行 rpmbuild 都已经是几年前的事。

现在突然再来一次从源代码开始编译安装,看着屏幕上飞快滚动的编译过程输出,想起当年自己为了突破 AMD K6 2+CPU 频频率上限而修改 Linux Kernel 的相关单元然后反复编译、测试的过程,颇有故地重游之感。

话说 Dovecot 用了这么久,它网站我还真的是第一次上,Logo也是第一次看到:

龙蜥 Anolis Linux 23 源代码编译安装 Dovecot

DOVECOT

The Secure IMAP server

言归正传。

1、首先还是下载安装龙蜥 Anolis Linux 23 GA版。选择最小安装。安装过程过于简单不表。

龙蜥 Anolis Linux 23 源代码编译安装 Dovecot

2、从源代码编译安装需要先安装编译环境

[root@anolis23 ~]# dnf install pam-devel openssl-devel autoconf automake gcc gcc-c++

编译环境需要安装 pam-devel 才能使 Dovecot 通过 libpam 进行用户身份校验。

同时,必须安装 openssl-devel 才能使 Dovecot 支持加密连接。就现在的网络环境来说,必须要有SSL加密连接支持,传统的不加密POP3连接并不安全,要弃用。

3、下载源代码包,解压,检查环境生成 Makefile

[root@anolis23 ~]# wget https://dovecot.org/releases/2.3/dovecot-2.3.21.tar.gz
[root@anolis23 ~]# tar zxf dovecot-2.3.21.tar.gz
[root@anolis23 ~]# cd dovecot-2.3.21/
[root@anolis23 dovecot-2.3.21]# ./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc --with-pam

需要给出的参数包括指定使用pam进行用户校验,以及定义 prefix、localstatedir 和 sysconfdir。要注意的是,这三个目录路径如果不专门给出定义而是按默认,也即这些位置都会基于 /usr/local/ 目录,那么 Dovecot 服务是运行不起来的。

因为 dovecot 服务需要用非 root 账号启动子进程,但 systemd 会拦截非root账号服务进程修改 /usr/local/ 位置之下的下级目录属性,导致 Dovecot 服务启动失败。

成功有效的环境检查过程,最后的输出应类似如下:

config.status: creating stamp.h
config.status: creating dovecot-config.in
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands

Install prefix . : /usr
File offsets ... : 64bit
I/O polling .... : epoll
I/O notifys .... : inotify
SSL ............ : yes (OpenSSL)
GSSAPI ......... : no
passdbs ........ : static passwd passwd-file shadow checkpassword
                 : -pam -bsdauth -ldap -sql
userdbs ........ : static prefetch passwd passwd-file checkpassword
                 : -ldap -sql
CFLAGS ......... : -std=gnu99 -g -O2 -fstack-protector-strong -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -mfunction-return=keep -mindirect-branch=keep -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wchar-subscripts -Wformat=2 -Wbad-function-cast -fno-builtin-strftime -Wstrict-aliasing=2
SYSTEMD ........ : simple - /usr/lib/systemd/system/dovecot.service
SQL drivers .... :
                 : -pgsql -mysql -sqlite -cassandra
Full text search : squat
                 : -lucene -solr

可以注意以上输出中,Install prefix 设置为/usr。SSL 应显示为yes,如果是 no 则缺失了 OpenSSL 的开发包。

4、然后是编译和安装,耐心等待即可。

[root@anolis23 ~]# make ; make install

可以分开执行,观察 make 的执行结果。

5、安装后的配置

参考文档说明:

https://doc.dovecot.org/configuration_manual/quick_configuration/#quick-configuration

其中,可以通过执行 doveconf 命令:

doveconf -n | head -n 1

确认配置文件应放到哪里,按本文的编译配置应为 /etc/dovecot/ 。然后复制范例配置过去:

[root@anolis23 ~]# cp -r /usr/local/share/doc/dovecot/example-config/* /etc/dovecot/

然后添加专门给 Dovecot 服务用的账号 dovenull 和 dovecot,并作适当的账号设置:

[root@anolis23 ~]# adduser -u 500 dovenull
adduser warning: dovenull's uid 500 outside of the UID_MIN 1000 and UID_MAX 60000 range.
[root@anolis23 ~]# adduser -u 501 dovecot
adduser warning: dovecot's uid 501 outside of the UID_MIN 1000 and UID_MAX 60000 range.
[root@anolis23 ~]# groupmod --gid 500 dovenull
[root@anolis23 ~]# groupmod --gid 501 dovecot
[root@anolis23 ~]# usermod -d /usr/libexec/dovecot dovecot
[root@anolis23 ~]# usermod -d /usr/libexec/dovecot dovenull
[root@anolis23 ~]# usermod -s /sbin/nologin dovecot
[root@anolis23 ~]# usermod -s /sbin/nologin dovenull

为和普通用户区分,我把 UID 和 GID 都设置为小于默认的1000,忽略 adduser 给出的 warning 提示即可。

如果想把这两个账号设置到和发行版预设(比如龙蜥 Anolis Linux 8)一样,如下是参考:

dovecot:x:97:97:Dovecot IMAP server:/usr/libexec/dovecot:/sbin/nologin
dovenull:x:971:970:Dovecot's unauthorized user:/usr/libexec/dovecot:/sbin/nologin

最后是设置pam如何支持dovecot校验用户身份,方法是创建这个配置文件:

/etc/pam.d/dovecot

其内容为:

#%PAM-1.0
auth       required     pam_nologin.so
auth       include      password-auth
account    include      password-auth
session    include      password-auth

这个文件的属性应符合如下设置:

[root@anolis23 pam.d]# ll -Z dovecot
-rw-r--r--. 1 root root system_u:object_r:etc_t:s0 164 Sep 29 23:27 dovecot

6、创建加密证

本来剩下的配置过程和上一篇是一样的,但由于版本23的环境设置稍有不同,加密证书的创建脚本要先切换到脚本所在位置再运行,所以就列一下。

首先是看自己需要,修改证书设置配置文件:

/usr/share/doc/dovecot/dovecot-openssl.cnf

设置SSL证书的信息。

然后检查证书的目的目录是否已经存在,没有就手工创建:

[root@anolis23 ~]# mkdir /etc/pki/private
[root@anolis23 ~]# chmod 700 /etc/pki/private/
[root@anolis23 ~]# ln -s /etc/pki/private/ /etc/ssl/private
[root@anolis23 ~]# ll /etc/ssl
total 4
-rw-r--r--. 1 root root 1167 Apr 13 17:02 README
lrwxrwxrwx. 1 root root   47 Apr 13 17:04 cert.pem -> ../pki/ca-trust/extracted/pem/tls-ca-bundle.pem
lrwxrwxrwx. 1 root root   44 Apr 13 17:04 certs -> ../pki/ca-trust/extracted/pem/directory-hash
lrwxrwxrwx. 1 root root   26 Apr 13 17:04 ct_log_list.cnf -> ../pki/tls/ct_log_list.cnf
lrwxrwxrwx. 1 root root   22 Apr 13 17:04 openssl.cnf -> ../pki/tls/openssl.cnf
lrwxrwxrwx. 1 root root   17 Sep 27 11:44 private -> /etc/pki/private/

然后运行脚本生成证

[root@anolis23 ~]# cd /usr/share/doc/dovecot/
[root@anolis23 dovecot]# bash mkcert.sh
..+........+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.+...+......+............+...+......+.+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*......+....+..+...+.+...........+......................+..+...+...+....+.........+......+.........+......+.....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
........+...+....+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.....+......+......+.+..+......+....+..+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*............+..+............+.+......+.....+......+..........+..+.............+........+......+......+.......+..+.........+.......+.....+.............+..+.......+..+...+.......+......+...+.........+.....+............+.....................+...+.+.....+.+..............+.+...+......+...+......+..+....+........+...+....+...+..+..................+.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-----

subject=OU = IMAP server, CN = imap.example.com, emailAddress = [email protected]
SHA1 Fingerprint=41:1B:EC:68:28:2E:DD:A3:5B:67:28:C4:4F:1F:0D:09:ED:B9:B9:8E
[root@anolis23 dovecot]# ll /etc/ssl/private/
total 3
-rw-------. 1 root root 1704 Sep 27 12:03 dovecot.pem

运行完检查一下应该已经正常生成。

7、其他配置

后面的配置过程和我上一篇文章是一样的,就不重复了:

经典有效的日志监控邮件集中巡检 Linux 服务器

要说区别的话,就是由于示范配置内容基本上都是注释起来按默认。如果对默认不放心,可以参照龙蜥 Anolis Linux 8.x 版本的配置文件,把在示范配置中被注释了的设置项目取消注释,明示之。

8、关于源代码安装的一些其他操作

如果在安装自己编译的 Dovecot 后要卸载,在源代码解压的目录内运行

make uninstall

即可实现卸载。

如果要重新编译(包括重新检测配置),要在源代码解压的目录内先运行

make clean

进行清理。

最后还是要说说学习。学习我只推崇看书。什么视频、网课都是浪费时间。如果自己没有足够的能力把零碎的知识片段拼凑起来,那么还是认认真真买本书读透了再说。

还可以看看这些内容:

经典有效的日志监控邮件集中巡检 Linux 服务器

如何把Windows的事件日志收集到Syslog日志服务器?

CIS关键安全控制措施集之九电子邮件和浏览器的防护

CIS关键安全控制措施集之八审计日志管理

来都来了,点个赞吧 ↓ 

原文始发于微信公众号(wavecn):龙蜥 Anolis Linux 23 源代码编译安装 Dovecot

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月24日08:04:02
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   龙蜥 Anolis Linux 23 源代码编译安装 Dovecothttps://cn-sec.com/archives/2081089.html

发表评论

匿名网友 填写信息