centos7.2下搭建postfix++dovecot+courier-authlib+extmail邮件收发系统

centos7.2下搭建postfix++dovecot+courier-authlib+extmail邮件收发系统

以前搭建过一次,由于不熟悉,断断续续折腾了半个月

在此记录一下,搭建全过程使用root账号,中间有一些错误调试的,都给忽略了,这里只给出最的配置

在文章最后面会有一些错误调试的记录

######################################### 

整个 extmail邮件系统,是由多个软件构成的: 

ExtMan           Web帐户管理后台(含mailgraph_ext 图形日志分析) ,web管理

ExtMail          WebMail(perl 程序) ,web支持

Postfix          SMTP服务器,邮件传输代理(MTA) ,收发邮件

Maildrop         邮件投递代理(MDA) 

Courier-imap     IMAP和POP3 服务器 

Cyrus-sasl2      标准的SASL实现库,可以支持Courier Cyrus SMTP认证库 

Courier-authlib  负责courier-imap,maildrop的认证 Courier 数据认证库(mysql) 

MySQL            数据库,储存虚拟(域|用户|别名)等信息. 

################################ 

postfix: 收发邮件 

dovecot: 投递邮件 

courier-authlib: 身份验证  

mysql 存储账号信息 

extmail: web支持 

extman: web管理 

################################# 

主要就是安装几个大块的软件:

  1. 数据库
  2. postfix
  3. courier-authlib
  4. dovecot
  5. extmai+extman

系统版本:

#cat /etc/redhat-release

CentOS Linux release 7.2.1511 (Core)

#uname -a

Linux HOST_107_centos 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

准备工作:

[root@HOST_107_centos ~]# getenforce

Disabled

这里如果不是 Disabled , 可以用setenfore=0命令把它设置为Disabled

centos 7.2 默认是不直接用iptables的,我这里开了firewalld 服务,所以直接把端口给开了

[root@HOST_107_centos ~]# firewall-cmd --add-port=110/tcp

[root@HOST_107_centos ~]# firewall-cmd --add-port=110/tcp --permanent

[root@HOST_107_centos ~]# firewall-cmd --add-port=25/tcp

[root@HOST_107_centos ~]# firewall-cmd --add-port=25/tcp --permanent

--permanent 参数是为了使firewalld重启之后,这两条规则依然生效,如果不执行带--permanent参数的命令,重启firewalld 之后,这两条命令就无效了

一.安装数据库:

#yum -y install mariadb.x86_64 mariadb-server.x86_64 mariadb-devel.x86_64

由于CentOS7.2的系统没有mysql数据库了,安装mariadb,不行后面再换(到最后发现mariadb也是可以用的,没什么影响)

启动数据库:

[root@HOST_107_centos mailbox]# service mariadb start

Redirecting to /bin/systemctl start  mariadb.service

[root@HOST_107_centos mailbox]#

检查数据库是否启动成功,发现OK了,进程如下:

[root@HOST_107_centos mailbox]# ps aux | grep mysql

mysql    22791  0.0  0.0   9512  1500 ?        Ss   14:48   0:00 /bin/sh /usr/bin/mysqld_safe --basedir=/usr

mysql    22947  2.1  1.1 920572 95864 ?        Sl   14:48   0:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock

root     22984  0.0  0.0 112660   960 pts/0    R+   14:48   0:00 grep --color mysql

登录数据库:

[root@HOST_107_centos mailbox]# mysql -u root

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 2

Server version: 5.5.52-MariaDB MariaDB Server

MariaDB [mysql]> delete from user where host like 'vm%';

Query OK, 2 rows affected (0.00 sec)

MariaDB [mysql]> delete from user where host='localhost' and user='root';

Query OK, 1 row affected (0.00 sec)

MariaDB [mysql]> delete from user where host='::1' and user='root';

Query OK, 1 row affected (0.00 sec)

MariaDB [mysql]> delete from user where host='localhost' and password='';

Query OK, 1 row affected (0.00 sec)

MariaDB [mysql]> update user set  password=password('ppppp902') where user='root';

Query OK, 1 row affected (0.00 sec)

Rows matched: 1  Changed: 1  Warnings: 0

MariaDB [mysql]> flush privileges;

Query OK, 0 rows affected (0.00 sec)

上面的操作删除了一些无用的账号,给剩下的root账号设置密码,改了之后只能这样# mysql -u root  -p -h 127.0.0.1  用密码登录

安装一些必须的插件和库:

# yum install gcc gcc-c++ openssl openssl-devel db4-devel ntpdate  bzip2 php-mysql cyrus-sasl-md5 perl-GD perl-DBD-MySQL perl-GD perl-CPAN perl-CGI perl-CGI-Session cyrus-sasl-lib cyrus-sasl-plain cyrus-sasl cyrus-sasl-devel libtool-ltdl-devel telnet mail libicu-devel  -y

卸载系统自带的postfix:yum remove postfix

添加用户和组:

groupadd -g 2525 postfix

useradd -g postfix -u 2525 -s /sbin/nologin -M postfix

groupadd -g 2526 postdrop

useradd -g postdrop -u 2526 -s /sbin/nologin -M postdrop

这里把用户id和组id设置为2525和2526是因为后面的extman/webman.cf, postfix/main.cf这两个文件默认都用了这两个数字,不用改来改去那么麻烦

二.解压安装postfix:

tar xf postfix-3.2-20160327.tar.gz

cd postfix-3.2-20160327

安装之前先看一下目录下面有没有对应的头文件和库文件, makefile的时候要用到,如果没有这些文件,编译安装会出错的:

[root@HOST_107_centos postfix-3.2-20160327]# ls /usr/include/mysql/

auth_dialog_client.h  ma_dyncol.h     my_config_x86_64.h   my_net.h         mysql_time.h          plugin_auth.h             service_logger.h            sql_common.h

client_plugin.h       m_ctype.h       my_dbug.h            my_pthread.h     mysql_version.h       plugin_ftparser.h         service_my_snprintf.h       sql_state.h

decimal.h             m_string.h      my_decimal_limits.h  mysql_com.h      my_sys.h              plugin.h                  service_progress_report.h   sslopt-case.h

errmsg.h              my_alloc.h      my_dir.h             mysqld_ername.h  my_valgrind.h         private                   services.h                  sslopt-longopts.h

handler_ername.h      my_attribute.h  my_getopt.h          mysqld_error.h   my_xml.h              psi                       service_thd_alloc.h         sslopt-vars.h

handler_state.h       my_compiler.h   my_global.h          mysql_embed.h    plugin_audit.h        service_debug_sync.h      service_thd_wait.h          typelib.h

keycache.h            my_config.h     my_list.h            mysql.h          plugin_auth_common.h  service_kill_statement.h  service_thread_scheduler.h

[root@HOST_107_centos postfix-3.2-20160327]#

[root@HOST_107_centos postfix-3.2-20160327]# ls /usr/include/sasl/

hmac-md5.h  md5global.h  md5.h  prop.h  sasl.h  saslplug.h  saslutil.h

[root@HOST_107_centos postfix-3.2-20160327]#

[root@HOST_107_centos postfix-3.2-20160327]# ls /usr/lib64/mysql/

INFO_BIN  INFO_SRC  libmysqlclient_r.so  libmysqlclient.so  libmysqlclient.so.18  libmysqlclient.so.18.0.0  mysqlbug  mysql_config  plugin

[root@HOST_107_centos postfix-3.2-20160327]#

[root@HOST_107_centos postfix-3.2-20160327]# ls /usr/lib64/sasl2/

libanonymous.so    libanonymous.so.3.0.0  libcrammd5.so.3      libdigestmd5.so    libdigestmd5.so.3.0.0  liblogin.so.3      libplain.so    libplain.so.3.0.0  libsasldb.so.3

libanonymous.so.3  libcrammd5.so          libcrammd5.so.3.0.0  libdigestmd5.so.3  liblogin.so            liblogin.so.3.0.0  libplain.so.3  libsasldb.so       libsasldb.so.3.0.0

[root@HOST_107_centos postfix-3.2-20160327]#

postfix编译和安装(这里-I指定的头文件和库,就是上面ls查看的那些,像mysql这些如果手动安装指定了不同的目录,这里要用-I指定对应的目录才行):

[root@HOST_107_centos postfix-3.2-20160327]#make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS ' 'AUXLIBS=-L/usr/lib64/mysql -lmysqlclient -lz -lrt -lm -L/usr/lib64/sasl2 -lsasl2 -lssl –lcrypto'

[root@HOST_107_centos postfix-3.2-20160

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值