Exim升级苦难史。阅读本文需谨慎,本机环境为CentOS 6.10,且过程中存在着gcc版本不够,无法使用c99mode等诸多问题,最终决定解决漏洞的最好方法就是卸载掉产生漏洞的软件,机智如我。
一、Exim的介绍
Exim是一个MTA(Mail Transfer Agent,邮件传输代理)服务器软件,该软件基于GPL协议开发,是一款开源软件。该软件主要运行于类UNIX系统。通常该软件会与Dovecot或Courier等软件搭配使用。Exim同时也是“进出口”(Export-Import)的英文缩写。
一般情况下Exim会集成进类UNIX系统上,包括CentOS、Redhat等。
但是低版本的Exim存在着漏洞,所以需要进行升级。
二、Exim的升级
1. 下载安装包
有两种下载的方式,第一种是访问官方GitHub仓库下载release版本,第二种是直接通过ftp服务器地址的wget来获取。
Exim的GitHub官方仓库地址:https://github.com/Exim/exim/releases
选择对应版本的exim下载tar.gz压缩包并传到需要更新exim的服务器上。
或者直接使用wget命令来下载,我们访问ftp://mirror.easyname.at/exim-ftp/exim/exim4/查看有哪些版本
例如这里我们需要下载exim-4.94.tar.gz,则直接使用如下命令进行下载,这里选择下载到usr目录下:
cd /usr
wget ftp://mirror.easyname.at/exim-ftp/exim/exim4/exim-4.94.tar.gz
2. 解压并安装
tar -xzvf exim-4.94.tar.gz
cd /usr/exim-4.94
# 创建Makefile文件 ,作者在这一步就进行不下去了 如果有读者遇到了一样的问题,且当前exim版本存在漏洞必须要进行处理,那么直接看第三章内容吧
cp src/EDITME Local/Makefile
# 编辑Local/Makefile文件 找到EXIM_USER=这一行,在等于号后面加上你本机除root外的账号,例如mail,并注释EXIM_MONITOR=eximon.bin。Linux管理用户详见https://blog.csdn.net/imVainiycos/article/details/109811943
vim Local/Makefile
# 这里也可能会失败,源于gcc版本不够,需要升级gcc,详见https://blog.csdn.net/hoewang/article/details/83654413
make
make install
3. 增加读写权限
chmod -R a+w /var/spool/mail
4. 切换至设置的账号
su mail
# 添加环境变量
PATH=$PATH:/usr/exim/bin
5. 检查版本
exim -bV
三、升级失败的后续
既然我没办法升级exim,那我就把它卸载了。毕竟如果漏洞没办法打补丁,那就把存在漏洞的软件给卸载了,机智如我。
yum remove exim
等待几秒后,搞定。
四、总结
若解决方法无法进行落实,就需要换一个思路了。作者在发现本机的exim版本存在着漏洞后,最开始就是想通过升级最新的exim来解决这个问题,但是由于各类问题导致无法正常升级exim,并耗费了大量的时间(大概折磨了我一天的时间)。最终在考虑再三后,发现exim在实际应用场景中并不会使用,于是直接进行卸载处理。
在更新exim的过程中遭遇了各种坑,网上资料也挺少的,还挺让人绝望的,不过好在依靠自己深度挖掘的努力下,想出了变通的方法。但是依旧保留升级exim的步骤,万一读者能够正常成功也算是功德一件。
参考资料: