postfix架构Webmail
- 格式:docx
- 大小:651.29 KB
- 文档页数:8
构建postfix邮件服务器(四)配置postfix支持虚拟用户2010年3月17日稀饭发表评论阅读评论一、准备1.从中下载extman-1.1.tar.gz2.从/projects/courier/files/下载courier-authlib使用Courier-authlib软件的目的是因为saslauthd程序不支持数据库认证,而Courier-authlib支持多种数据库认证3.检查postfix是否支持虚拟用户postconf–m|grep msyql如果出现mysql表示支持二、建立虚拟用户数据库1启动mysqlservice mysqld restart(要想使用此方法启动,必须将mysqld添加为系统服务,见构建postfix邮件服务器(一))2.解压extmantar zxvf extman-1.1.tar.gz3.导入extman软件包中的数据库脚本cd extman-1.1/docsmysql-u root-p123456<extmail.sqlmysql-u root-p123456<init.sql-p后面接的是mysql的密码(要想直接使用mysql就要输入export PATH=$PATH:/usr/local/mysql/bin)extmail.sql脚本进行的操作:主要针对邮件域localhost进行初始化创建extmail库,及该库中的一些表创建用户extmail@localhost,密码为extmail对数据库extmail中的表拥有“SELECT”、“UPDATE”的权限创建用户webman@localhost,密码为extman对数据库extmail中的表拥有“SELECT”、“INSERT”、“DELETE”、“UPDATE”权限init.sql脚本进行的操作:主要是建立了一个新的测试邮件域添加虚拟邮件域的记录,作为该邮件域的管理帐户创建用户root@,密码为extmail*123*创建用户postmaster@,密码为extmail作为该邮件域内的基本邮件用户三、配置虚拟用户支持postfix1、修改main.cf文件Vi/etc/ostfix/main.cf#mydestination=$mydomain,$myhostname//注释这一行添加下面的内容virtual_mailbox_base=/mailbox\\指定虚拟邮箱存储目录的路径起点virtual_alias_maps=mysql:/etc/postfix/mysql_virtual_alias_maps.cf\\指定虚拟邮件用户对应的别名文件位置virtual_mailbox_maps=mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf\\指定记录虚拟邮件地址与存储位置对应关系的映射文件的位置virtual_mailbox_domains=mysql:/etc/postfix/mysql_virtual_domains_maps.cf\\设置postfix服务器可以接收的虚拟邮件域的域名,作用类似于配置参数“mydestination”virtual_uid_maps=static:1000\\设置所有虚拟用户映射的本地用户的UIDvirtual_gid_maps=static:1000\\设置所有虚拟用户映射的本地用户的GID2.建立虚拟用户映射表文件方法:复制extman软件包中docs子目录下的样例文件mysql_virtual_alias_maps.cf mysql_virtual_mailbox_maps.cf mysql_virtual_domains_maps.cfcd extman-0.2.5/docscp mysql_virtual_*/etc/postfix/四、为虚拟用户设置SMTP发信认证1.解压coutier-authlib-0.63.0tar jxvf courier-authlib-0.63.0.tar.bz22.预配置./configure–prefix=/usr/local/courier-authlib\\\安装的位置>–without-stdheaderdir\\\将头文件安装到一个不是默认的头文件搜索路径的目录中>–with-authmysql\\\配置支持MYSQ数据库查询>–with-redhat\>–with-mysql-libs=/usr/local/mysql/lib/mysql\\\mysql的库文件路径>–with-mysql-includes=/usr/local/mysql/include/mysql\\msyql的头文件路径3.编译,安装make;make install4.生成authmysqlrc和authdaemonrc两个文件命令make install-configureauthdaemonrc:主配置,设置使用的认证方式authmysqlrc:数据库配置,设置连接地址、查询方式等5.将courier-authlib的库文件路径添加到系统的搜索路径中去1)vi/etc/ld.so.conf/usr/local/courier-authlib/lib/courier-authlib2)更新Ldconfig6.修改authdaemonrc主配置文件,仅保留authmysql认证方式,去掉其他1)进入目录cd/usr/local/courier-authlib/etc/authlib/2)备份cp authdaemonrc authdaemonrc.bak3)保留authmysql认证方式①vi authdaemonrc②删掉所有内容1000dd③添加如下两行authmodulelist=”authmysql”authmodulelistorig=”authmysql”7.修改authmysqlrc文件,用于描述如何向mysql数据库查询信息1)cd/usr/local/courier-authlib/etc/authlib/2)备份cp authmysqlrc authmysqlrc.bak3)vi authmysqlrc修改MYSQL_SERVER localhost\\msyql数据库服务器位置MYSQL_USERNAME extmail\\数据库管理员账号MYSQL_PASSWORD extmail\\数据库管理员账户密码MYSQL_SOCKET/tmp/mysql.sock\\mysql.sock文件位置MYSQL_DATABASE extmail\\虚拟用户数据库MYSQL_USER_TABLE mailbox\\重mailbox表中获得账户的信息MYSQL_CRYPT_PWFIELD password\\从pssword字段获得帐户密码MYSQL_UID_FIELD uidnumber\\从uidnumber字段获得映射的本地用户UID MYSQL_GID_FIELD gidnumber\\从gidnumber字段获得映射的本地组GIDMYSQL_LOGIN_FIELD username\\从username字段获得帐户名称(带@后缀)MYSQL_HOME_FIELD concat(‘/mailbox/’,homedir)\\合并出用户的宿主目录完整路径MYSQL_NAME_FIELD name\\从name字段获得帐户名称(不带@后缀)MYSQL_MAILDIR_FIELD concat(‘/mailbox/’,maildir)\\合并出用户的完整邮件存储路径8.回到源码目录,复制脚本,并启动courier-authlib服务cd/postfix-an/courier-authlib-0.63.0\\回到源码目录cp courier-authlib.sysvinit/etc/init.d/courier-authlib\\复制脚本到chmod755/etc/init.d/courier-authlib\\给权限chkconfig–level35courier-authlib on\\在35基本,开机启动service courier-authlib start\\启动courier-authlib9.修改cyrus sasl设置vi/usr/lib/sasl2/smtpd.confpwcheck_method:authdaemondauthdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket10.修改目录的权限,否则postfix无法获得用户名和密码chmod–R755/usr/local/courier-authlib/var/spool/authdaemon/五、修改Dovecot的配置Vi/etc/dovecot.conf1.查找mail_location把它修改为mail_location=maildir:/mailbox/%d/%n/Maildir2.查找mechanisms=plain在下面添加以下内容passdb sql{args=/etc/dovecot-mysql.conf}userdb sql{args=/etc/dovecot-mysql.conf}4.建立数据查询配置文件Vi/etc/dovecot-mysql.conf\\建立文件,添加如下内容driver=mysqlconnect=host=localhost dbname=extmail user=extmail password=extmaildefault_pass_scheme=CRYPT\\msyql数据库中存储的密码串的加密算法password_query=SELECT username AS user,password AS password FROM mailbox WHERE username=‘%u’\\用于查询用户密码的SQL语句user_query=SELECT maildir,uidnumber AS uid,gidnumber AS gid FROM mailbox WHERE username=‘%u’\\用于查询用户的SQL语句上述配置可参考样例文件”etc/dovecot-sql.conf”5.建立虚拟用户的邮箱根目录“/mailbox”1)mkdir-p/mailbox//postmaster/Maildir/-p表示连接新建目录/mailbox是邮箱存储空间的顶层目录,必须创建/mailbox/目录对应虚拟邮件域/mailbox//postmaster目录对应邮件用户postmaster@/mailbox//postmaster/Maildir目录对应该用户的邮箱存储空间2)chown-R postfix:postfix/mailbox6.重启dovecot/usr/local/sbin/dovecot-c/etc/dovecot.conf六、测试虚拟用户1.使用authtest验证数据库查询,用于测试的邮箱账号用户:postmaster@,密码:extmail 1)命令/usr/local/courier-authlib/sbin/authtest-s login postmaster@ extmail2)如果出现“Authentication succeeded”表示成功2.测试对虚拟用户的smtp发信认证出现235Authentication Successful表示成功1)首先获得虚拟用户postmaster@的用户名和密码的BASE64编码字符串①#perl-e‘use MIME::Base64;print encode_base64(“postmaster\@”)’得到cG9zdG1hc3RlckBleHRtYWlsLm9yZw==②perl-e‘use MIME::Base64;print encode_base64(“extmail”)’得到ZXh0bWFpbA==或者用命令printf“用户名或密码”|openssl base64。
系统postfix安装与配置(一)系统postfix安装与配置一、 postfix概述postfix是Wietse Venema在IBM的GPL协议之下开发的MTA(传输代理)软件。
下面一段话摘自postfix的官方站点():“postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试。
在Internet 世界中,大部分的电子都是通过sendmail来投递的,大约有100万用户使用sendmail,每天投递上亿封。
这真实一个让人吃惊的数字。
Postfix试图更快、更容易管理、更安全,同时还与sendmail保持足够的兼容性。
”1.1 postfix的特点1. postfix是免费的:postfix想要作用的围是广大的Internet用户,试图影响大多数的Internet上的电子系统,因此它是免费的。
2. 更快:postfix在性能上大约比sendmail快三倍。
一部运行postfix的台式PC每天可以收发上百万封。
3. 兼容性好:postfix是sendmail兼容的,从而使sendmail用户可以很方便地迁移到postfix。
Postfix 支持/var[/spool]/mail、/etc/aliases、 NIS、和 ~/.forward 文件。
4. 更健壮:postfix被设计成在重负荷之下仍然可以正常工作。
当系统运行超出了可用的存或磁盘空间时,postfix会自动减少运行进程的数目。
当处理的数目增长时,postfix运行的进程不会跟着增加。
5. 更灵活:postfix是由超过一打的小程序组成的,每个程序完成特定的功能。
你可以通过配置文件设置每个程序的运行参数。
6. 安全性postfix具有多层防御结构,可以有效地抵御恶意入侵者。
如大多数的postfix程序可以运行在较低的权限之下,不可以通过网络访问安全性相关的本地投递程序等等。
1.2 postfix的总体结构postfix由十几个具有不同功能的半驻留进程组成,并且在这些进程中并无特定的进程间父子关系。
实验2-1-DNS+postfix+雷鸟和roundcubemail>>实验要求:1、搭建DNS服务器,了解DNS与邮件服务器之间的关系2、安装postfix服务3、安装雷鸟客户端4、搭建roundcubemail>>实验步骤:第一步:搭建DNS服务1、安装DNS组件2、启动DNS服务查看配置文件3、配置DNS的配置文件4、重启服务,找一个客户端测试第二步:安装postfix邮件服务1、开启postfix服务2、配置postfix服务Vim /etc/postfix/main.cf3、查看postfix各参数4、创建mail账户,并使用客户端的telnet吗,命令来验证邮件服务第三步:开始搭建雷鸟客户端1、先用另一台客户端来验证邮件服务2、将下载好的雷鸟安装包放到客户端上3、将下载好的雷鸟安装包解压到指定目录4、创建一个启动脚本5、使用脚本来启动雷鸟6、雷鸟的使用7、发送邮件第四步:搭建webmail1、将下载好的webmail下载到linux服务端上,并解压到指定目录tar –zxvf roundcubemail-0.3.1.tar.gz –C /var/www/html mv roundcubemail-0.3.1 webmail2、搭建mysql数据库及php环境Yum -y install mysql mysql-server php php-mysql3、启动数据库服务4、修改数据库的密码,并进入数据库5、创建数据库及权限给予6、设置Roundmail的数据库信息和配置文件Vim db.inc.phpVim naub.inc.php7、修改目录访问权限8、访问网站。
配置extmail过程详解所用软件包:(本文中,以下软件包都将在/root中存放),软件包都是最新的源代码包。
Postfix-2.6.2Mysql-5.0.45Cyrus-sasl-2.1.22DB-4.5.20Openssl-0.9.8ehttpd-2.2.4Php-5.2.3courier-authlib-0.58courier-imap-4.1.0Extmail-1.1.0(依赖关系包:Unix-Syslog-1.1.tar.gz,DBD-mysql-3.0008.tar.gz) Extman-0.2.5(依赖关系包:gd-2.0.35,GD-2.44,配置图形日志所需软件包:Time-HiRes-1.9719.tar.gz,File-Tail-0.99.3.tar.gz,rrdtool-1.2.30.tar.gz )maildrop-2.0.2(需要pcre的支持,pcre-7.3.tar.bz2)clamav-0.91.2amavisd-new-2.6.4Mail-SpamAssassin-3.2.5系统逻辑结构前提:开始前请确保您已经配置好指向此邮件服务器MX记录及其它DNS设置;本示例中的域名为,邮件服务器FQDN为,IP地址为192.168.1.11;同时,如果您的服务器事先已经安装了sendmail,请卸载之;一、安装mysql-5.0.45# rpm -qa |grep mysql|xargs rpm -e --nodeps(删除系统自带的mysql)# groupadd mysql# useradd -g mysql -s /bin/false -M mysql# tar zxvf mysql-5.0.45.tar.gz# cd mysql-5.0.45#./configure --prefix=/usr/local/mysql --enable-thread-safe-client --enable-local-infile --with-charset=gbk --with-extra-charset=all --with-low-memory# make# make install# cp support-files/f /etc/f# cd /usr/local/mysql# chown -R mysql .# chgrp -R mysql .# bin/mysql_install_db --user=mysql# chown -R root .# chown -R mysql var# bin/mysqld_safe --user=mysql &# netstat -tnl(查看有没有打开3306端口)# cd /root/mysql-5.0.45 (这里的目录指的是原压缩包解压后的目录)# cp support-files/mysql.server /etc/rc.d/init.d/mysqld# chmod 700 /etc/rc.d/init.d/mysqld加入自动启动服务队列:# chkconfig --add mysqld# chkconfig --level 345 mysqld on测试# /usr/local/mysql/bin/mysqladmin ping# /usr/local/mysql/bin/mysqladmin version# /usr/local/mysql/bin/mysql添加root密码# /usr/local/mysql/bin/mysqladmin -u root password 'password' 新密码说明:此时mysql的root用户的密码为空配置库文件搜索路径# echo "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf# ldconfig -v添加/usr/local/mysql/bin到环境变量PATH中# export PATH=$PATH:/usr/local/mysql/bin二、安装openssl-0.9.8e# tar zxvf openssl-0.9.8e.tar.gz# cd openssl-0.9.8e# ./config shared zlib# make# make test# make install# mv /usr/bin/openssl /usr/bin/openssl.OFF# mv /usr/include/openssl /usr/include/openssl.OFF# rm /usr/lib/libssl.so# ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl# ln -s /usr/local/ssl/include/openssl /usr/include/openssl# ln -sv /usr/local/ssl/lib/libssl.so.0.9.8 /usr/lib/libssl.so配置库文件搜索路径# echo "/usr/local/ssl/lib" >> /etc/ld.so.conf# ldconfig -v检测安装结果# openssl versionOpenSSL 0.9.8e 23 Feb 2007三、安装BerkeleyDB# tar zxvf db-4.5.20.tar.gz# cd db-4.5.20/build_unix# ../dist/configure --prefix=/usr/local/BerkeleyDB# make# make install修改相应的头文件指向# mv /usr/include/db4 /usr/inculde/db4.OFF# rm /usr/include/db_cxx.h# rm /usr/include/db.h# rm /usr/include/db_185.h# ln -sv /usr/local/BerkeleyDB/include /usr/include/db4# ln -sv /usr/local/BerkeleyDB/include/db.h /usr/include/db.h# ln -sv /usr/local/BerkeleyDB/include/db_cxx.h /usr/include/db_cxx.h配置库文件搜索路径# echo "/usr/local/BerkeleyDB/lib" >> /etc/ld.so.conf# ldconfig -v四、安装httpd-2.2.4# tar jxvf httpd-2.2.4.tar.bz2# cd httpd-2.2.4#./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --with-ssl=/usr/local/ssl --enable-track-vars --enable-rewrite --with-zlib --enable-mods-shared=most --enable-suexec --with-suexec-caller=daemon --with-suexec-docroot=/var/www# make# make install# echo "/usr/local/apache/bin/apachectl start" >> /etc/rc.local(系统启动时服务自动启动)安装:libpng以支持PHP五、安装php-5.2.3# tar -zvxf php-5.2.3.tar.gzmak# mkdir -p /usr/local/php# cd php-5.2.3#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-xml --with-png --with-jpeg --with-zlib --with-freetype --with-gd --enable-track-vars --enable-mbstring=all# make# make install# cp php.ini-dist /usr/local/php/lib/php.ini注:编辑apache配置文件httpd.conf,以apache支持php# vi /etc/httpd/httpd.conf1、添加如下二行AddType application/x-httpd-php .phpAddType application/x-httpd-php-source .phps2、定位至DirectoryIndex index.html修改为:DirectoryIndex index.php index.html3、按照使用习惯,这里将网站根目录指定到/var/www:找到DocumentRoot “/usr/local/apache/htdocs”修改为:DocumentRoot “/var/www”(后文中我们还会注释掉此行,以启用虚拟主机)找到<Directory “/usr/local/apache/htdocs”>修改为:<Directory “/var/www”>找到<#ServerName :80>修改为:<ServerName 192.168.1.11:80> 注意把#去掉说明:这个对本文来说并非是不可少的。
深入理解postfixpostfix 可以在内存有限的系统上执行,而不会影响其它服务的效能,这是因为postfix 提供的内存管理功能非常有弹性,可以依据各种需求加以调整。
每封邮件用量限制当postfix 处理邮件时,必须将邮件暂存于邮件队列中,其中maildrop 和incoming 队列使用硬盘,而active 和deferred 则使用内存,每封暂存在队列中的邮件耗用多少内存是由邮件数据结构来决定,幸运的是这个数据结构的字段大小是可以微调的,透过这些微调就能决定postfix 的最大内存用量了!line_length_limit = 2048 从客户端接收待寄邮件时,每行最多2 KBheader_size_limit = 102400 每封邮件的标头大小不得超过100 KBextract_recipient_limit = 10240 每封邮件的收信人字段不得超过10 KBmessage_size_limit = 10240000 每封邮件(包含信封)的大小,不得超过10 MBqueue_minfree = 当内存剩下多少Bytes 时,才可以处理下一封邮件,预设是没有限制。
bounce_size_limit = 50000 警告信的大小限制为50 KB。
假设通通使用默认值,也就是所有参数都不设置,那么处理一封邮件须耗用10.05 MB,再加上postfix 模块程序的大小,总共约20 MB,这也就是postfix 运行的最小需求了!邮件数量限制当前述用量限制设置完毕后,接着我们还可以针对邮件队列一次要处理多少邮件作出限制,把每封邮件内存用量乘上邮件数量,就可以算出所需的内存总量,当内存足够时,我们当然希望尽可能多处理几封邮件来增进postfix 的效能。
qmgr_message_recipient_limit = 1000 这个参数之前介绍过了,除了用来控制dead 清单的大小外,也控制着处理中的邮件收信人总量,两者的预设限制都是1000。
Debian上PostFix的配置很早以前曾经写过Debian下安装Postfix的第一篇,由于时间问题,使用虚拟用户及多域名的配置一直没时间整理,现在终于完成了。
1. 安装相关软件apt-get install postfix postfix-mysqlapt-get install courier-pop courier-imap courier-authlib-mysql courier-authdaemonapt-get install libsasl2-2 sasl2-bin libsasl2-modulesapt-get install libpam-mysqlapt-get install ilohamail2. 安装postfixadmin由于使用mysql支持postfix需要自己设计数据库的结构,在这里我们使用一个第三方的软件postfixadmin,幸运的是现在postfixadmin有了deb安装包。
wget ... 60&big_mirror=0dpkg -i postfixadmin_2.2.0_all.deb修改/etc/config.inc.php$CONF['configured'] = 'true';$CONF['default_language'] = 'cn';$CONF['domain_path'] = 'YES';$CONF['domain_in_mailbox'] = 'NO';$CONF['database_type'] = 'mysql';$CONF['database_host'] = 'localhost';$CONF['database_user'] = 'postfixadmin';$CONF['database_password'] = 'postfixmaster';$CONF['database_name'] = 'postfix';其它的选项,您可以根据自己的喜好修改。
postfix邮件服务器快速指南ASP 专区求:使用postfix为公司配置一部邮件服务器,用户可以使用username@或username@访问邮箱(也即要实现虚拟域功能),并且要能将所有发给root的邮件转发给用户tom(也即要实现别名)。
公司内部网段为192.168.1.0/24,邮件服务器插有两张网卡。
一、运行环境:操作系统:RedHat7.0postfix版本:postfix-20010228release-2.i386pop3服务器版本:RedHat7.0自带的imap-4.7c2-12客户端工具:outlook二、安装postfix和imap1.获取postfix的rpm软件包。
从/~sjmudd/postfix/ 站点下载下面的postfix的rpm包:postfix-20010228release-2.i386.rpm2.用以下命令查看系统是否安装了sendmail:[root@mail /root]# rpm –qa |grep sendmailsendmail-8.11.0-83.卸载sendmail:[root@mail /root]# rpm -e sendmail -–nodeps4.用以下命令杀死运行中的sendmail进程:[root@mail /root]# killall sendmail如果系统提示:sendmail: no process killed则说明当前系统中没有sendmail进程。
5.安装postfix:[root@mail /root]# rpm -Uvh postfix-20010228release-2.i386.rpm6.安装imap插入RedHat7.0安装盘,mount后执行:rpm –ivh /mnt/cdrom/RedHat/RPMS/ imap-4.7c2-12.rpm三、配置DNS配置DNS服务器,将和域的MX记录都指向邮件服务器,然后执行ndc reload命令使改动生效。
使⽤postfix进⾏收发邮件背景:⾸次使⽤postfix测试收邮件,发邮件环境:CentOS Linux release 7.8.2003 (Core),基于VMware Workstations Pro 15标签:Postfix,Dovecot,多实例1,配置2个固定IP,多实例,1个IP对应1个实例。
192.168.101.8 和 192.168.101.9vim /etc/sysconfig/network-scripts/ifcfg-ens33TYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPROTO="static"DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="yes"IPV6_AUTOCONF="yes"IPV6_DEFROUTE="yes"IPV6_FAILURE_FATAL="no"IPV6_ADDR_GEN_MODE="stable-privacy"NAME="ens33"UUID="f6d40cce-367a-4349-9351-511a6235b342"DEVICE="ens33"ONBOOT="yes"IPADDR="192.168.101.8"IPADDR1="192.168.101.9"GATEWAY="192.168.101.1"NETMASK="255.255.255.0"DNS1="8.8.8.8"2. 安装Postfix,现在⼤部分的Linux系统都⾃带Postfix,⽆需安装,这⾥直接进⾏配置vim /etc/postfix/main.cf#接受外部邮件需要更改为inet_interfaces = all#加上⾃⼰的邮箱域名mydestination = $myhostname, localhost.$mydomain, localhost, bytedance.shop#邮件存放⽬录home_mailbox = Maildir/multi_instance_wrapper = ${command_directory}/postmulti -p --multi_instance_enable = yesmulti_instance_name = postfix-rzhangmulti_instance_group = rzhangmulti_instance_directories = /etc/postfix-2master_service_disable =authorized_submit_users = rootmyhostname = postfix.bytedance.shopmydomain = bytedance.shopmyorigin = $mydomainmynetworks = 192.168.101.8/32,127.0.0.0/8relay_domains = $mydestinationsmtp_bind_address = 192.168.101.8smtpd_sasl_auth_enable = yesbroken_sasl_auth_clients = yessmtpd_sasl_type = dovecotsmtpd_sasl_path = /var/spool/postfix/private/authsmtpd_sasl_security_options = noanonymoussmtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destinationtransport_maps = hash:/etc/postfix/transport配置master.cfvim /etc/postfix/master.cf#设置第⼀个实例的端⼝,发信端⼝可以⾃定义,但是收信端⼝是25192.168.101.8:25 inet n - n - - smtpd#smtp inet n - n - - smtpd配置第⼆个Postfix实例cp main.cf master.cf /etc/postfix-2/以下为第⼆个postfix与第1个不同的地⽅vim /etc/postfix-2/main.cfqueue_directory = /var/spool/postfix-2data_directory = /var/lib/postfix-2multi_instance_wrapper = ${command_directory}/postmulti -p --multi_instance_enable = yesmulti_instance_name = postfix-2multi_instance_group = rzhang#multi_instance_directories = /etc/postfix-2master_service_disable =authorized_submit_users = rootmyhostname = postfix2.bytedance.shopmydomain = bytedance.shopmyorigin = $mydomainmynetworks = 192.168.101.9/32,127.0.0.0/8relay_domains = $mydestinationsmtp_bind_address = 192.168.101.9smtpd_sasl_auth_enable = yesbroken_sasl_auth_clients = yessmtpd_sasl_type = dovecotsmtpd_sasl_path = /var/spool/postfix/private/authsmtpd_sasl_security_options = noanonymoussmtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination#transport_maps = hash:/etc/postfix/transport配置mastervim /etc/postfix-2/master.cf192.168.101.9:8025 inet n - n - - smtpd#smtp inet n - n - - smtpd3. 安装和配置dovecotvim /etc/dovecot/dovecot.confauth_mechanisms = plain loginmbox_write_locks = fcntlpassdb {driver = pam}service auth {unix_listener /var/spool/postfix/private/auth {group = postfixmode = 0660user = postfix}user = root}#ssl_cert = </etc/pki/dovecot/certs/dovecot.pem#ssl_key = </ect/pki/dovecot/private/dovecot.pemuserdb {driver = passwd}ssl = requiredvim /etc/dovecot/conf.d/10-mail.confmail_location = maildir:~/Maildir4,启动postfix和dovecot,具体报错根据⽇志检查tail -100 /var/log/maillog其中在发邮件的时候遇到过以下报错loops back to myself⽹上资料说的⽅法有,在postfix的mydestination加上⾃⼰的域名,更改hostname。
RHEL5安装Postfix+CyrusSASL+dovecot默认方式安装RHEL5,不选中任何类型服务器(如WEB服务器,开发服务器,虚拟服务器等)一、安装postfix[root@rhel5 ~]# service sendmail stop关闭sm-client:[确定]关闭sendmail:[确定][root@rhel5 ~]# chkconfig sendmail off[root@rhel5 Server]# rpm -ivh postfix-2.3.3-2.i386.rpm[root@rhel5 Server]# vi /etc/postfix/main.cfmyhostname = #设置运行postfix服务的邮件主机的主机名、域名mydomain =myorigin = $mydomain #设置由本机寄出的邮件所使用的域名或主机名称inet_interfaces = all #设置postfix服务监听的网络接口mydestination = $myhostname, $mydomain #设置可接收邮件的主机名称或域名mynetworks = 192.168.0.0/24 #设置可转发哪些网络的邮件relay_domains = $mydestination #设置可转发哪些网域的邮件保存文件。
检查postfix的配置:[root@rhel5 Server]# postconf –n[root@rhel5 ~]# chkconfig postfix on二、添加邮件用户的帐号[root@mail ~]# groupadd mail[root@mail ~]# useradd –g mail -s /sbin/nologin zpp001[root@mail ~]# useradd -g mail -s /sbin/nologin zpp002[root@mail ~]# passwd zpp001[root@mail ~]# passwd zpp002將postfix加入到root的组:# usermod -G root postfix三、SMTP认证的配置安装cyrus-sasl1、确认cyrus-sasl是否安装了[root@rhel5 Server]# rpm -qa|grep cyruscyrus-sasl-plain-2.1.22-4cyrus-sasl-lib-2.1.22-4cyrus-sasl-2.1.22-42、Cyrus-SASL V2的密码验证机制[root@rhel5 ~]# saslauthd -vsaslauthd 2.1.22authentication mechanisms: getpwent kerberos5 pam rimap shadow ldap我们准备用的是shadow的密码验证机制。
构建postfix全功能完整--------邮件服务系统(全源码包)目录目录 (1)前言 (1)概述 (1)适用版本 (1)适用人员 (2)部署前准备 (2)部署流程设计 (3)安装、配置与部署 (3)第1部分搭建基本的postfix运行环境 (3)第2部分开始部署postfix邮件服务系统 (8)第3部分部署Extmail邮件使用平台 (18)第4部分部署extman web管理平台 (21)日期作者版本更改参考2010年8月26日魏震 5.0前言概述描述postfix软件的应用技术架构,基本部署模型以及不同网络环境下的软件及参数设置与配置等。
适用版本linux系统Red hat (红帽子系列)适用人员网络管理人员、服务器系统维护和技术支持人员等部署前准备第1部分所需源码包httpd-2.2.15.tar.gzmysql-5.0.56.tar.gz第2部分所需源码包postfix-2.4.6.tar.gz/postfix-2.4.6-vda-ng.patch.gzdovecot-1.1.4.tar.gzsquirrelmail-1.4.13.tar.bz2zh_CN-1.4.13-20071220.tar.bz2courier-authlib-0.60.2.tar.bz2第3部分所需源码包DBI-1.607.tar.gzDBD-mysql-4.011.tar.gzUnix-Syslog-1.1.tar.gzextmail-1.0.5.tar.gz第4部分所需源码包GD-2.41.tar.gzFile-Tail-0.99.3.tar.gzrrdtool-1.2.23-3.el5.i386.rpmrrdtool-perl-1.2.23-3.el5.i386.rpmrrdtool-perl-1.2.23-3.el5.i386.rpmextman-0.2.5.tar.gz第5部分所需源码包MailScanner-4.75.11-1.rpm.tar.gz spamassassin-3.1.7-4.el5.i386.rpm部署流程设计安装、配置与部署第1部分 搭建基本的postfix 运行环境1.搭建dns 服务器:1)安装dns 源码包或rpm 包: 2)创建dns 服务主配置文件:vi /var/named/chroot/etc/named.conf************************************* options { directory "/var/named"; };Apache 服务器Dns 服务器Php 服务Mysql 数据库服务器Postfix 服务器Dovecot 服务器SMTP 认证服务COURIER-AUTHLIB 认证服务Rhel5平台Extmail Web 平台使用及管理Manager 管理zone "" IN{type master;file ".zone";allow-transfer { 172.16.16.10; };};zone "16.16.172.in-addr.arpa" IN {type master;file "172.16.16.arpa";allow-transfer { 172.16.16.10; };};*************************************** 3)生成区域数据库文件:vi /var/named/chroot/var/named/.zone *************************************** $TTL 86400@ SOA . . (20100506014H30M12H1D)@ IN NS .IN NS .IN A 172.16.16.9IN MX 10 .ns1 IN A 172.16.16.9ns2 IN A 172.16.16.10mail IN A 172.16.16.1www IN A 172.16.16.1study IN A 172.16.16.2* IN A 172.16.16.1*************************************** vi /var/named/chroot/var/named/172.16.16.arpa *************************************** $TTL 86400@ SOA . . (20100506014H30M12H1D)IN NS .IN NS .1 IN PTR .2 IN PTR .9 IN PTR .10 IN PTR .service named startchkconfig –level 35 named on测试dns服务器:2.apache安装配置:----------------------1)解包:tar zxvf httpd-2.2.15.tar.gz2)进入解包后的目录:cd httpd-2.2.153)创建安装目录:mkdir /usr/local/apache24)配置编译环境:./configure --prefix=/usr/local/apache2 \ --enable-so \--enable-rewrite \--enable-cgi \--enable-cgid \--enable-suexec \--with-mysql=/usr/local/mysql \--with-suexec-caller=daemon \--with-suexec-bin=/usr/local/apache2/bin \--with-suexec-docroot=/usr/local/apache2/htdocs \5)编译与安装:make && make install6)对apache进行简单的配置之后,启动apache服务/usr/local/apache2/bin/apachectl start测试apache服务器:3.mysql安装配置:-----------------------1)创建mysql账户:useradd -M -s /sbin/nologin mysql2)解包:tar zxvf mysql-5.0.56.tar.gz3)进入解包后的目录:cd mysql-5.0.564)创建安装目录:mkdir /usr/local/mysql5)配置编译环境:./configure --prefix=/usr/local/mysql --with-pam6)编译与安装:make && make install7)生成mysql配置文件:cp support-files/f /etc/f8)初始化mysql数据库/usr/local/mysql/bin/mysql_install_db --user=mysql chown -R root.mysql /usr/local/mysqlchown -R mysql /usr/local/mysql/varecho "/usr/local/mysql/lib/mysql" >> /etc/ld.so.conf ldconfig/usr/local/mysql/bin/mysqld_safe --user=mysql & netstat -ntpl | grep 3306cp support-files/mysql.server /etc/init.d/mysqldchmod +x /etc/init.d/mysqldchkconfig --add mysqldchkconfig mysqld onexport PA TH=$PATH:/usr/local/mysql/binecho "PA TH=$PATH:/usr/local/mysql/bin" >> /etc/profile 测试数据库连接:mysql –u root –pmysql>mysql>mysqladmin –u root password “123456”第2部分开始部署postfix邮件服务系统安装前工作:1、查看当前系统是否安装sendmail[root@server01 /]# rpm -qa | grep sendmail2、为了避免与要安装的postfix冲突,可以停用sendmail或卸载*/建议只关闭sendmail服务,不要卸载sendmail程序,因为后面做smtp认证时将要用到sendmail安装包里的认证文件smtpd,否则如果没有这个认证文件,将会导致最终的smtp认证失败/*[root@server01 /]# service sendmail stop[root@server01 /]# chkconfig --level 35 sendmail off3、查看系统是否安装postfix的rpm包[root@server01 /]# rpm -qa | grep postfix确认系统没有安装postfix服务器软件包3.postfix安装及配置******安装*******1)创建运行邮件系统的用户账号postfix及用户组postfix和postdrop[root@server01 /]# groupadd -g 1200 postdrop[root@server01 /]# groupadd -g 1000 postfix[root@server01 /]# useradd -M -u 1000 -g postfix -G postdrop -s /sbin/nologin postfix2)解压释放postfix源码包、合并VGA补丁[root@server01 tools]# tar zxvf postfix-2.4.6.tar.gz[root@server01 tools]# gunzip postfix-2.4.6-vda-ng.patch.gz[root@server01 tools]# cd postfix-2.4.6[root@server01 postfix-2.4.6]# patch -p1 < ../postfix-2.4.6-vda-ng.patch3)产生postfix编译前的makefiles配置文件由于实验案例的需要,在这里不能使用rpm包安装的postfix,因为rpm安装的postfix默认不支持mysql。
一:修改主机名:
[root@lyt ~]# vim /etc/sysconfig/network
[root@lyt ~]# vim /etc/hosts
[root@lyt ~]# servicesendmail stop
[root@lyt ~]# chkconfigsendmail off #关闭sendmail
[root@lyt ~]# init 6 #重启计算机
二:搭建dns服务器:
[root@mail ~]# mkdir /mnt/cdrom #新建挂载点
[root@mail ~]# mount /dev/cdrom /mnt/cdrom/ #挂载光盘
[root@mail ~]# cd /mnt/cdrom/Server/
[root@mail Server]# rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm #安装dns
主程序
[root@mail Server]# rpm -ivh bind-chroot-9.3.6-4.P1.el5.i386.rpm #
安装与dns安全相关的软件包
[root@mail Server]# rpm -ivh caching-nameserver-9.3.6-
4.P1.el5.i386.rpm #安装与缓存相关的软件包
[root@mail Server]# cd /var/named/chroot/etc/
[root@mailetc]# cp -p named.caching-nameserver.confnamed.conf
[root@mailetc]# vimnamed.conf #编辑dns的主配置文件
[root@mailetc]# vim named.rfc1912.zones #编辑dns区域声明文件
[root@mailetc]# cd ../var/named/
[root@mail named]# cp -p localhost.zone 163.com.db
[root@mail named]# vim 163.com.db #编辑数据库文件
[root@mail named]# vim /etc/resolv.conf
[root@mail named]# service named start #启动dns
[root@mail named]# chkconfig named on #设置开机自动启动
三:搭建postfix:
[root@mail named]# cd /mnt/cdrom/Server/
[root@mail Server]# rpm -ivh postfix-2.3.3-2.1.el5_2.i386.rpm #安装
postfix软件包
[root@mail Server]# vim /etc/postfix/main.cf #编辑postfix主配置
文件
除了以上截图外,还需要添加以下内容:
broken_sasl_auth_clients = yes #客户端需要经过身份验证
smtpd_sasl_auth_enable = yes #客户端需要经过身份验证
smtpd_sasl_security_options = noanonymous #不允许匿名发送
smtpd_sasl_application_name = smtpd
smtpd_client_restrictions = permit_sasl_authenticated,reject #发送方需
要经过认证,没经过认证的拒绝
#smtpd_client_restrictions = permit_sasl_authenticated
smtpd_recipient_restrictions =
permit_mynetworks,permit_sasl_authenticated,reject_unauth_destinatio
n #接收本地network的,经过认证的,非认证的拒绝
[root@mail Server]# servicesaslauthd start #启动sasl验证功能
[root@mail Server]# chkconfigsaslauthd on #设置为开机自动启动
[root@mail Server]# service postfix start
[root@mail Server]# chkconfig postfix on
四:安装squirrelmail:
[root@mail Server]# vim /etc/yum.repos.d/rhel-debuginfo.repo #编辑
yum
[root@mail Server]# yum install squirrelmail –y #安装squirrel
[root@mail Server]# servicehttpd start #启动httpd
[root@mail Server]# chkconfighttpd on #设置开机自动启动
[root@mail Server]# cd /var/www/html/
[root@mail html]# ln -s /usr/share/squirrelmail/ mail #创建符号连接
mail
[root@mail html]# cd
[root@mail ~]# cd /var/www/html/mail/
[root@mail mail]# cdconfig/
[root@mailconfig]# ./conf.pl #对web页面进行设置
[root@mailconfig]# vim /etc/httpd/conf/httpd.conf #修改apache的配
置文件
[root@mailconfig]# servicehttpd restart
五:安装dovecot:
[root@mailconfig]# cd /mnt/cdrom/Server/
[root@mail Server]# yum install dovecot –y #使用yum安装dovecot
[root@mail Server]# service dovecot start
[root@mail Server]# chkconfig dovecot on
六:创建用户:
[root@mail Server]# useradd user1
[root@mail Server]# passwd user1
[root@mail Server]# useradd user2
[root@mail Server]# passwd user2
七:禁用此行:
[root@mail Server]# vim /etc/postfix/main.cf
[root@mail Server]# service postfix restart