配置postfix支持虚拟域和虚拟用户
请先看基础篇 https://www.cnblogs.com/hellojackyleon/p/9281620.html
https://sourceforge.net/projects/courier/files/authlib/0.66.3/courier-authlib-0.66.3.tar.bz2/download
部署courier-authlib
wget http://nchc.dl.sourceforge.net/project/courier/courier-unicode/1.3/courier-unicode-1.3.tar.bz2
[root@mail src]# tar xf courier-unicode-1.3.tar.bz2
[root@mail src]# cd courier-unicode-1.3
[root@mail courier-unicode-1.3]# ./configure
[root@mail courier-unicode-1.3]# make &&make install
[root@mail courier-authlib-0.66.3]# yum install -y libtool-ltdl libtool-ltdl-devel expect
[root@mail src]# tar xf courier-authlib-0.66..tar.bz2
[root@mail src]# cd courier-authlib-0.66.3
./configure \
--prefix=/usr/local/courier-authlib \
--sysconfdir=/etc \
--without-authpam \
--without-authshadow \
--without-authvchkpw \
--without-authpgsql \
--with-authmysql \
--with-mysql-libs=/usr/lib64/mysql \
--with-mysql-includes=/usr/include/mysql \
--with-redhat \
--with-authmysqlrc=/etc/authmysqlrc \
--with-authdaemonrc=/etc/authdaemonrc \
--with-mailuser=postfix \
--with-mailgroup=postfix
[root@mail courier-authlib-0.66.3]# make&&make install
[root@mail ~]# chmod 755 /usr/local/courier-authlib/var/spool/authdaemon/
[root@mail courier-authlib-0.66.3]# cp /etc/authdaemonrc.dist /etc/authdaemonrc
[root@mail courier-authlib-0.66.3]# cp /etc/authmysqlrc.dist /etc/authmysqlrc
[root@mail ~]# vim /etc/authdaemonrc
authmodulelist="authmysql"
authmodulelistorig="authmysql"
daemons=10
DEBUG_LOGIN=2 #仅仅调试时候使用,生产关闭
MYSQL_SERVER localhost
MYSQL_USERNAME extmail
MYSQL_PASSWORD extmail
MYSQL_SOCKET /var/lib/mysql/mysql.sock
MYSQL_PORT 3306
MYSQL_DATABASE extmail
MYSQL_CRYPT_PWFIELD password
MYSQL_UID_FIELD 2525
MYSQL_GID_FIELD 2525
MYSQL_LOGIN_FIELD username
MYSQL_HOME_FIELD concat('/var/mailbox/',homedir)
MYSQL_NAME_FIELD name
MYSQL_MAILDIR_FIELD concat('/var/mailbox/',maildir)
[root@mail courier-authlib-0.66.3]# cp courier-authlib.sysvinit /etc/init.d/courier-authlib
[root@mail courier-authlib-0.66.3]# chmod +x /etc/init.d/courier-authlib
[root@mail courier-authlib-0.66.3]# chkconfig --add courier-authlib
[root@mail courier-authlib-0.66.3]# /etc/init.d/courier-authlib start
[root@mail ~]# echo "/usr/local/courier-authlib/lib/courier-authlib" >>/etc/ld.so.conf.d/courier-authlib.conf
[root@mail ~]#ldconfig -v |grep courier
[root@mail ~]# mkdir /var/mailbox
[root@mail ~]# chown postfix /var/mailbox/
[root@mail ~]# vim /usr/lib64/sasl2/smtpd.conf
pwcheck_method: authdaemond
mech_list: PLAIN LOGIN
log_level: 3
authdaemond: /usr/local/courier-authlib/var/spool/authdaemon/socket
#authdaemond_path: /usr/local/courier-authlib/var/spool/authdaemon/socket
[root@mail ~]# /etc/init.d/saslauthd restart
配置postfix 支持虚拟域,虚拟用户
[root@mail ~]# vim /etc/postfix/main.cf ########################Virtual Mailbox Settings########################
virtual_mailbox_base = /var/mailbox
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_alias_domains =
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_uid_maps = static:
virtual_gid_maps = static:
virtual_transport = virtual
#maildrop_destination_recipient_limit =
#maildrop_destination_concurrency_limit =
##########################QUOTA Settings########################
message_size_limit =
virtual_mailbox_limit =
#virtual_create_maildirsize = yes
#virtual_mailbox_extended = yes
#virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
#virtual_mailbox_limit_override = yes
#virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please Tidy your mailbox and try again later.
#virtual_overquota_bounce = yes [root@mail ~]# postconf -n
extman
[root@mail src]# wget http://7xivyw.com1.z0.glb.clouddn.com/extman-1.1.tar.gz
[root@mail src]# tar xf extman-1.1.tar.gz
[root@mail src]# cd extman-1.1
[root@mail extman-1.1]# cd docs/
[root@mail docs]# sed -i 's/TYPE=MyISAM/ENGINE=MyISAM/g' extmail.sql
[root@mail docs]# sed -i 's/TYPE=MyISAM/ENGINE=MyISAM/g' init.sql
[root@mail docs]# mysql -u root -p < extmail.sql
Enter password:
[root@mail docs]# mysql -u root -p < init.sql
mysql> grant all on extmail.* to extmail@'localhost' identified by 'extmail';
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on extmail.* to extmail@'127.0.0.1' identified by 'extmail';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
[root@mail docs]# cp mysql_virtual_* /etc/postfix/
注:启用虚拟域后,需取消中心域,即注释掉myhostname, mydestination, mydomain, myorigin几个指令
#myhostname = mail.deo.com
#mydomain = deo.com
#myorigin = deo.com
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
[root@mail docs]# postfix reload
[root@mail src]# mv extman-1.1 /var/www/extsuite/
[root@mail src]# cd /var/www/extsuite/
[root@mail extsuite]# mv extman-1.1/ extman
[root@mail extsuite]# cd extman
[root@mail extman]# cp webman.cf.default webman.cf
[root@mail extman]# vim webman.cf
YS_MAILDIR_BASE = /var/mailbox
SYS_CAPTCHA_ON = 0
SYS_DEFAULT_SERVICES = webmail,smtpd,smtp,pop3,netdisk,imap
YS_DEFAULT_UID = 2525
SYS_DEFAULT_GID = 2525
SYS_MYSQL_USER = extmail
SYS_MYSQL_PASS = extmail
SYS_MYSQL_DB = extmail
SYS_MYSQL_HOST = localhost
SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock
[root@mail extman]# chown -R postfix.postfix /var/www/extsuite/extman/cgi
[root@mail extman]# mkdir -p /tmp/extman
[root@mail extman]# chown postfix.postfix /tmp/extman
配置dovecot
[root@mail docs]# vim /etc/dovecot/dovecot.conf
listen = *
!include conf.d/*.conf
base_dir = /var/run/dovecot/
protocols = imap pop3 [root@mail conf.d]# vim 10-mail.conf
mail_privileged_group = mail
mail_location = maildir:/var/mailbox/%d/%n/Maildir
[root@mail docs]# cd /etc/dovecot/conf.d/
[root@mail conf.d]# cp auth-sql.conf.ext auth-sql.conf
[root@mail conf.d]# vim auth-sql.conf
passdb {
driver = sql
# Path for SQL configuration file, see example-config/dovecot-sql.conf.ext
args = /etc/dovecot/dovecot-mysql.conf
}
userdb {
driver = sql
args = /etc/dovecot/dovecot-mysql.conf
}
[root@mail conf.d]# vim 10-ssl.conf
ssl = no
[root@mail conf.d]# vim 10-auth.conf
disable_plaintext_auth = no
[root@mail conf.d]# cat /etc/dovecot/dovecot-mysql.conf #新建该配置文件
driver = mysql
connect = host=localhost dbname=extmail user=extmail password=extmail
default_pass_scheme = CRYPT
password_query = SELECT username AS user,password AS password FROM mailbox WHERE username = '%u'
user_query = SELECT maildir, uidnumber AS uid, gidnumber AS gid FROM mailbox WHERE username = '%u'
[root@mail conf.d]# /etc/init.d/dovecot restart
extmail
[root@mail src]# wget http://7xivyw.com1.z0.glb.clouddn.com/extmail-1.2.tar.gz
[root@mail src]# tar xf extmail-1.2.tar.gz
[root@mail extmail-1.2]# mkdir -p /var/www/extsuite
[root@mail extmail-1.2]# mv extmail-1.2 /var/www/extsuite/extmail
[root@mail src]# chown -R postfix.postfix /var/www/extsuite/extmail/cgi/
[root@mail src]# cd /var/www/extsuite/extmail/
[root@mail extmail]# cp webmail.cf.default webmail.cf
[root@mail extmail]# vim webmail.cf
SYS_USER_LANG = zh_CN
SYS_MAILDIR_BASE = /var/mailbox
SYS_MYSQL_USER = extmail
SYS_MYSQL_PASS = extmail
SYS_MYSQL_DB = extmail
SYS_MYSQL_HOST = localhost
SYS_MYSQL_SOCKET = /var/lib/mysql/mysql.sock
SYS_MYSQL_TABLE = mailbox
SYS_MYSQL_ATTR_USERNAME = username
SYS_MYSQL_ATTR_DOMAIN = domain
SYS_MYSQL_ATTR_PASSWD = password
SYS_AUTHLIB_SOCKET = /usr/local/courier-authlib/var/spool/authdaemon/socket
[root@mail extmail]# yum install perl-Unix-Syslog
http
User postfix
Group postfix
<VirtualHost *:>
ServerName mail.deo.com
DocumentRoot /var/www/extsuite/extmail/html/
ScriptAlias /extmail/cgi /var/www/extsuite/extmail/cgi
Alias /extmail /var/www/extsuite/extmail/html
ScriptAlias /extman/cgi /var/www/extsuite/extman/cgi
Alias /extman /var/www/extsuite/extman/html </VirtualHost> #DocumentRoot "/var/www/html" 将这行注释
[root@mail extmail]# httpd -t
Syntax OK
默认用户名:root@extmail.org;默认密码:extmail*123*
参考链接
https://blog.csdn.net/unixtech/article/details/53079041
http://blog.51cto.com/wangzhijian/1695401
https://www.cnblogs.com/panliu/articles/4806947.html
最终配置如下
[root@mail extman]# vim /etc/postfix/main.cf
inet_protocols = ipv4
meta_directory = /etc/postfix
shlib_directory = no smtputf8_enable = no
############################CYRUS-SASL############################
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions=permit_mynetworks,permit_sasl_authenticated,reject_invalid_hostname,reject_non_fqdn_hostname,reje
ct_unknown_sender_domain,reject_non_fqdn_sender,reject_non_fqdn_recipient,reject_unknown_recipient_domain,reject_unauth_pipeli
ning,reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
#smtpd_client_restrictions = permit_sasl_authenticated
smtpd_sasl_security_options = noanonymous
smtpd_sasl_path = smtpd
smtpd_banner = Welcome to our $myhostname ESMTP,Warning: Version not Available!
##############################virtual mailbox setting#########################
virtual_mailbox_base = /var/mailbox
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_alias_domains =
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_uid_maps = static:2525
virtual_gid_maps = static:2525
virtual_transport = virtual
message_size_limit = 14336000
virtual_mailbox_limit = 20971520
home_mailbox = Mailbox
[root@mail extman]# vim /etc/dovecot/conf.d/10-mail.conf
mail_location = maildir:/var/mailbox/%d/%n/Maildir
mail_privileged_group = mail
配置postfix支持虚拟域和虚拟用户的更多相关文章
- 邮件服务配置(虚拟域&虚拟用户)
邮件服务配置(虚拟域&虚拟用户) 现在我做的是: Linux + httpd + php + mariadb + postfix + dovecot + phpMyAdmin + postfi ...
- nginx:支持跨域访问
在http节点中配置: #支持跨域访问 add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Header ...
- 烂泥:Postfix邮件服务器搭建之虚拟用户配置
virtual_gid_maps = static: virtual_transport = dovecot dovecot_destination_recipient_limit = 1 注意:po ...
- Linux中Postfix虚拟用户及虚拟域(六)
Postfix基于虚拟用户虚拟域的邮件架构 上图是一个几乎完整的邮件系统架构图,这里基于Mysql数据库进行用户认证,不管是Postfix.Dovecot.webmail都需要去Mysql数据库中进行 ...
- JavaWeb学习之tomcat安装与运行、tomcat的目录结构、配置tomcat的管理用户、web项目目录、虚拟目录、虚拟主机(1)
1.tomcat安装与运行双击tomcat目录下的bin/startup.bat,启动之后,输入http://localhost:8080,出现安装成功的提示,表示安装tomcat成功 2.tomca ...
- centos6.5下vsftpd服务的安装及配置并通过pam认证实现虚拟用户文件共享
FTP的全称是File Transfer Protocol(文件传输协议),就是专门用来传输文件的协议.它工作在OSI模型的第七层,即是应用层,使用TCP传输而不是UDP.这样FTP客户端和服务器建立 ...
- Nginx配置多个基于域名的虚拟主机+实验环境搭建+测试
标签:Linux 域名 Nginx 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xpleaf.blog.51cto.com/9 ...
- ESXI和vSphere的安装配置-实现一台电脑硬件虚拟化为两台
本篇文章包含以下几个部分: 1EXSI软件和vSphere软件的安装 2在vSphere上安装虚拟系统 3对虚拟系统通过配置实现硬件虚拟化,实现硬件直通 1.EXSI安装 通过网上下载EXSI ISO ...
- IIS配置支持跨域请求
对于初次在IIS部署网站的同学,很容易忽略或不知道如何配置使其网站支持跨域请求,这里介绍一个最基础的方式,配置HTTP响应标头. 在IIS上选择HTTP响应标头,选择添加自定义响应标头,通常我们会添加 ...
随机推荐
- Redis------Set集合类型
set是string类型的无序集合 类比:你的朋友不能超过2的32次方-1个元素 基本添加删除操作 取并集 取交集 取差集 注意:每个元素的各个元素不能重复 应用场合:qq好友推荐‘ TomFri 的 ...
- PHP小练习题
前几天在百度知道里面看到有位网友询问如何制作一下的小程序:用php语言设计一个小程序,计算今天到达下月的天数.全部输出这些天数,并使得每天的日期以三种颜色循环显示,设置三个表单,让用户选择字体颜色,然 ...
- Jongmah CodeForces - 1110D
传送门 题意:你有n个数字,范围[1, m],你可以选择其中的三个数字构成一个三元组,但是这三个数字必须是连续的或者相同的,每个数字只能用一次,问这n个数字最多构成多少个三元组? 题解:三个一模一样的 ...
- 开放定址法——平方探测(Quadratic Probing)
为了消除一次聚集,我们使用一种新的方法:平方探测法.顾名思义就是冲突函数F(i)是二次函数的探测方法.通常会选择f(i)=i2.和上次一样,把{89,18,49,58,69}插入到一个散列表中,这次用 ...
- CSS继承特殊
继承 CSS的某些样式具有继承性.继承是一种规则,它允许样式不仅作用于某个特定html标签元素,而且应用于其后代 如:在p中的所有字体都为红色 p{color:red;} <p ...
- 110Balanced Binary Tree
问题:判断二叉树是否为平衡二叉树分析:树上的任意结点的左右子树高度差不超过1,则为平衡二叉树. 搜索递归,记录i结点的左子树高度h1和右子树高度h2,则i结点的高度为max(h1,h2 ...
- CSS3---混合模式
概念 CSS3混合模式( CSS Blend Modes )是CSS3新增的一个魔法特性,可以允许多个背景或多个元素进行混合,类似于Photoshop的图层混合模式 CSS3混合模式属性一览 ba ...
- mysql安装与基本管理,mysql密码破解
一.MySQL介绍 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下公司.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是 ...
- 《Cracking the Coding Interview》——第17章:普通题——题目1
2014-04-28 21:45 题目:就地交换两个数,不使用额外的变量. 解法:没说是整数,我姑且先当整数处理吧.就地交换可以用加法.乘法.异或完成,其中乘法和加法都存在溢出问题.三种方法都不能处理 ...
- JMeter获取复杂的JSON串中的参数的值
大家好,这篇博文中主要是介绍怎么用JMeter的BeanShell去获取复杂的JSON串中的某个参数的值,这将 便于我们用JMeter做出更完美的自动化测试: 首先有这样一个json串: { &quo ...