Quantcast
Channel: 看得透又看得远者prevail. ppt.cc/flUmLx ppt.cc/fqtgqx ppt.cc/fZsXUx ppt.cc/fhWnZx ppt.cc/fnrkVx ppt.cc/f2CBVx
Viewing all articles
Browse latest Browse all 20528

在Ubuntu/debian服务器上,安装开源邮件服务器套件-iRedMail

$
0
0
iRedMail是一个Linux下的全栈邮件服务器套件,包括了Postfix、Dovecot、Amavisd、Policyd (iRedAPD)、网页服务器、数据库后端等开源程序。你也可以把它理解为邮件服务器的LNMP.org。它不仅简化了安装程序(无需手动编辑配置文件,只需要回答几个简单的问题即可),还提供了一些简便的工具来管理邮件服务器,比如iRedAdmin面板。更多关于这个邮件服务器套件的介绍可以看一下百度百科官网(官网在大陆需要使用正确姿势才能访问)。
这篇文章讲述了如何在一台已经安装了网页服务器(Nginx/Apache)和MySQL(或MariaDB)数据库的服务器上安装、配置iRedMail,包括DKIM/SPF等(这个以后慢慢更新)。
11月5日更新:增加步骤四-安装Roundcube Webmail
官方的文档要求安装在一个干净的系统内,就是说系统不应该安装有Postfix、Dovecot、Amavisd、Policyd (iRedAPD)、网页服务器、数据库后端等程序。但是我的系统(相信很多人也是一样)因为是生产服务器已经安装有网页服务器和数据库服务器,另外找一个服务器来弄不仅麻烦而且也浪费资源,所以写这么一篇教程讲如何在一个不干净的Ubuntu系统内安装这个套件。注意一下,我这里的不干净仅指安装过数据库和网页服务器,剩余程序我的服务器也是没有安装过的(你可以使用apt purge清理)。
下面的教程中有用到http://www.iredmail.org的地方,如果你服务器在国内,请替换为http://173.254.22.21。这个是官方的镜像,至于为什么要这么弄大家都懂。
我服务器的配置:
  • OS: Ubuntu Xenial 16.04.3 LTS
  • 网页服务器: LNMP.org – Nginx + Apache + 另行安装的MariaDB集群 + PHP 7.1(PHP在iRedMail用不上因为面板是python写的)
  • 我用的是LANMP,本教程应该也适用于LAMP因为不需要碰Nginx。
  • Apache默认没带mod_wsgi,这个插件是iRedAdmin面板所必须的,过后我会讲解如何编译安装。
  • 官方建议流量不大的服务器也应至少有2G内存,并且UID 2000,2001和2002没有被占用。

步骤一:使用官方脚本完成基本安装

  • 在MySQL数据库内创建一个具有所有权限的用户,即与root权限相等的用户。在下面的步骤中,这个用户的名字会用DB_USERNAME、密码会用DB_PASSWORD代替。创建完成后请使用mysql -u DB_USERNAME -p测试是否能正常连接。
  • 执行下面代码。请注意,你需要在管理员权限(通常为root权限)下执行这些代码
01
02
03
04
05
06
07
08
09
10
11
wget https://bitbucket.org/zhb/iredmail/downloads/iRedMail-0.9.7.tar.bz2
tarxvf iRedMail-0.9.7.tar.bz2
cdiRedMail-0.9.7
USE_EXISTING_MYSQL='YES'\
    MYSQL_SERVER_ADDRESS='127.0.0.1'\
    MYSQL_SERVER_PORT='3306'\
    MYSQL_ROOT_USER='DB_USERNAME'\
    MYSQL_ROOT_PASSWD='DB_PASSWORD'\
    MYSQL_GRANT_HOST='%'\
    IREDMAIL_MIRROR='http://www.iredmail.org'#如果你是国内的服务器请替换这一行,看上面的说明 \
    bashiRedMail.sh
  • 接下来会显示一个窗口,第一个欢迎信息选Yes就行。第二个问题询问邮件储存位置,如果没什么特殊需求保留缺省(/var/vmail)即可。第三个问题问是用什么网页服务器,选择No Web Server,因为我们已经安装了网页服务器。第四个问题问什么后端,如果你是MySQL就选MySQL,MariaDB就选MariaDB。接下来第五个问题问邮件域名,比如如果你想为ixnet.work搭建一个邮件服务器,用abc@ixnet.work这样的地址接收/发送邮件的话,直接填ixnet.work即可。第六个问题,你需要设置一个管理员密码,这个很重要因为管理面板也需要这个密码登录。然后可选部件保留默认(安装iRedAdmin和fail2ban)。确认一下信息输入y回车就可以开始安装。
  • 等待脚本跑完,脚本执行完毕之后就已经初步安装/配置好了该套件,但是还有一些别的东西需要手动弄。
  • 把上面第(1)点创建的那个MySQL账户删掉,因为已经用不上了。每个会用到数据库的套件都有各自独立的账户和密码,脚本自动帮你创建了。

步骤二:启动iRedAPD

1
2
service iredapd start
systemctl enable/opt/iredapd/rc_scripts/iredapd.service
你可以使用lsof -i:7777检查iredapd是否已经启动,如果已经启动python进程会监听7777端口。

步骤三:配置网页服务器使其加载iRedAdmin

  • 创建一个vhost,假定我这里设置的域名为iredadmin.example.com(下面的自行替换),选择默认的根目录位置(/home/wwwroot/iredadmin.example.com)。
1
lnmp vhost add
  • 创建一个软链接。
1
2
rm-r /home/wwwroot/iredadmin.example.com
ln-s /opt/www/iredadmin/home/wwwroot/iredadmin.example.com
  • 检查Apache是否安装了mod_wsgi,如果提示文件不存在请编译安装一个。
1
2
# 检查是否安装了mod_wsgi
ls/usr/local/apache/modules/mod_wsgi.so
1
2
3
4
5
6
7
# 编译安装mod_wsgi
wget https://github.com/GrahamDumpleton/mod_wsgi/archive/4.5.19.tar.gz
tarxvzf 4.5.19.tar.gz
cdmod_wsgi-4.5.19
./configure--with-apxs=/usr/local/apache/bin/apxs--with-python=$(whichpython)
make
makeinstall
  • 编辑/usr/local/apache/conf/vhost/iredadmin.example.com.conf,LANMP参考下面的配置,LAMP应该也是类似的修改(注意中文的注释)。
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 在VirtualHost之前增加下面的两行
LoadModule wsgi_module modules/mod_wsgi.so
WSGISocketPrefix /var/run/wsgi
 
<VirtualHost *:88>
ServerAdmin howard@ixnet.work
php_admin_value open_basedir "/home/wwwroot/iredadmin.example.com:/tmp/:/var/tmp/:/proc/"
DocumentRoot "/home/wwwroot/iredadmin.example.com"
ServerName iredadmin.example.com
ErrorLog "/home/wwwlogs/iredadmin.example.com-error_log"
CustomLog "/home/wwwlogs/iredadmin.example.com-access_log" combined
 
# 在VirtualHost里面增加下面的四行
WSGIDaemonProcess iredadmin user=iredadmin threads=15
WSGIProcessGroup iredadmin
WSGIScriptAlias / /home/wwwroot/iredadmin.example.com/iredadmin.py/
AddType text/html .py
 
<Directory "/home/wwwroot/iredadmin.example.com">
    SetOutputFilter DEFLATE
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all'
# 注释掉这一行
#    DirectoryIndex index.html index.php
</Directory>
</VirtualHost>
  • 重启Apache,修改域名的DNS记录(iredadmin.example.com)使其指向服务器。当你访问访问这个域名,你应该可以看到iRedAdmin的登录界面。
1
lnmp httpd restart

步骤四:安装RoundCube Webmail

  • 编辑/etc/postfix/master.cf,检查submission开头那一行是否有注释,如果有,去掉,然后重启postfix服务。
  • 编辑/etc/dovecot/conf.d/10-master.conf,检查service auth代码块内是否有没注释的unix_listener /var/spool/postfix/private/dovecot-auth代码块,如果没有,按照下面的示范加上,然后重启dovecot服务。
1
2
3
4
5
6
7
service auth {
...
  unix_listener /var/spool/postfix/private/dovecot-auth {
    mode = 0666
  }
...
}
  • 检查并确认以下服务正在运行:clamav-daemonamavisdovecotpostfix
  • 创建一个新的vhost,我用lnmp创建指令为lnmp vhost add。假设你的域名为roundcubemail.example.com
  • Roundcube Webmail的Github发布页面下载最新版本(Complete版本的tar包)。以下代码为示范。
1
2
3
4
5
6
cd/home/wwwroot
wget https://github.com/roundcube/roundcubemail/releases/download/1.3.2/roundcubemail-1.3.2-complete.tar.gz
tarxvzf roundcubemail-1.3.2-complete.tar.gz
rm-rf roundcubemail.example.com
mvroundcubemail-1.3.2-complete.tar.gz roundcubemail.example.com
chownwww:www -R roundcubemail.example.com
  • 按照这个文件的指示,创建数据库(与对应受限用户)并导入SQL。
  • 打开http://roundcubemail.example.com/installer,按照指示进行配置。插件随意,选几个喜欢的就好。
  • 保存配置,进入下一步,自行测试一下安装是否成功。除了Test filetype detection那一块不是必须要装filetype插件以外,别的都应该是OK
  • 清理安装目录
1
2
3
cd/home/wwwroot/roundcubemail.example.com
rm-rf installer
vim config/config.inc.php #在任意地方加上 $config['enable_installer'] = false;
接下来的步骤包括配置SPF/DKIM/SMTP/IMAP等以后有空继续更新。

Viewing all articles
Browse latest Browse all 20528

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>