基于虚拟账号的邮件系统

第一步:配置DNS

vim /etc/resolv.conf 做nameserver指向本机器
vim /etc/sysconfig/network    标示本区域的名字
vim /etc/hosts      查看主机名字是否是自己设置的
挂载光盘
vim /etc/yum.repos.d/rhel-debuginfo.repo 编辑yum安装环境
yum install bind 安装bind
yum install bind-chroot    安装bind-chroot
yum install caching-nameserver    安装caching-nameserver
cd /var/named/chroot/etc进入dns目录cp -p named.caching-nameserver.conf named.conf生成配置脚本
编辑配置脚本
vim named.rfc1912.zones 指明dns解析文件位置
cd ../var/named/ 切换目录并生成编译文件cp -p localhost.zone A.org.zone
vim A.org.zone 编译文件

 

service named start启动dns         chkconfig named on设为开机启动
因为要使用postfix搭建邮件服务器所以要关闭Linux系统中的sendmail
安装本次试验所需软件包
yum install httpd php php-mysql mysql mysql-server mysql-devel openssl-devel dovecot perl-DBD-MySQL tcl tcl-devel libart_lgpl libart_lgpl-devel libtool-ltdl libtool-ltdl-devel expect
共计相关的 软件包 16个
需要确定系统中开发环境的正确用 yum grouplist来查看开发环境
service mysqld start启动 mysql          chkconfig mysqld on设为开机启动
mysqladmin -u root password 'your_password'可以用此方法给 mysql创建管理账号
也可以进入 mysql中用
SET PASSWORD FOR root@'localhost'=PASSWORD('redhat');
SET PASSWORD FOR root@'127.0.0.1'=PASSWORD('redhat'); 两种方法创建管理账号
FLUSH PRIVILEGES;刷新用户权限
GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'redhat';远程创建管理员账号,同样要刷新权限
第二部:用源代码安装 postfix,上传所需软件包压缩文件
tar -zxvf postfix-2.8.2.tar.gz -C /usr/local/src/ 解压文件到指定目录
cd /usr/local/src/postfix-2.8.2/ 切换到新生成目录
groupadd -g 2525 postfix创建一个值为 2525的组postfix
useradd -g postfix -u 2525 -s /sbin/nologin -M postfix 给组添加一个账号 postfix
groupadd -g 2526 postdrop  再创建一个值为 2526的组postdrop
useradd -g postdrop -u 2526 -s /bin/false -M postdrop 给组一个账号
因为解压文件没有生成 ./configure所以要自己生成makefile文件
make makefiles 'CCARGS=-DHAS_MYSQL -I/usr/include/mysql -DUSE_SASL_AUTH -DUSE_CYRUS_SASL -I/usr/include/sasl -DUSE_TLS ' 'AUXLIBS=-L/usr/lib/mysql -lmysqlclient -lz -lm -L/usr/lib/sasl2 -lsasl2    -lssl -lcrypto'
然后执行 make和make install。在执行make install是会有相关文件安装位置的选择,(【】内部的值为默认,要是不改动直接回车,改动就写出路径)
        install_root: [/] /
   tempdir: [/usr/local/src/ postfix-2.6.5] /tmp
   config_directory: [/etc/postfix] /etc/postfix
   daemon_directory: [/usr/libexec/postfix]
   command_directory: [/usr/sbin]
   queue_directory: [/var/spool/postfix]
   sendmail_path: [/usr/sbin/sendmail]
   newaliases_path: [/usr/bin/newaliases]
   mailq_path: [/usr/bin/mailq]
   mail_owner: [postfix]
   setgid_group: [postdrop]  
       html_directory: [no] /var/www/postfix_html
       manpages: [/usr/local/man]
       readme_directory: [no]
这样 postfix安装就完成了。
执行 newaliases  生成别名文件,这样能提高postfix的效率
postfix start 启动 postfix
postconf -m 执行此命令查看 postfix是否支持mysql
mkdir /tmp/abc           cd /tmp/abc/
cp /mnt/cdrom/Server/postfix-2.3.3-2.1.el5_2.i386.rpm ./ 拷贝文件到当前目录
rpm2cpio postfix-2.3.3-2.1.el5_2.i386.rpm |cpio -id 展开此rpm包
cd /tmp/abc/etc/rc.d/init.d/        cp postfix /etc/init.d/ 把文件拷贝到指定目录
这样就可以用 service启用postfix了。此时系统能进行邮件发送,可以测试一下。
vim /etc/postfix/main.cf 编辑配置文件

service postfix restart 重启
postfix设置身份验证
vim /etc/postfix/main.cf

cd /usr/lib/sasl2/      cp -p Sendmail.conf smtpd.confpostfix生成一个.conf文件
vim smtpd.conf 编辑文件添加 mech_list: PLAIN LOGIN认证机制也可不添加
service saslauthd start     chkconfig saslauthd on 启动 ssl并设为开机启动
第三部:安装与 mysql相关的Courier authentication library:
tar -jxvf courier-authlib-0.63.0.tar.bz2 -C /usr/local/src/ 解压安装包到指定目录
cd /usr/local/src/courier-authlib-0.63.0/      切换到生成目录
./configure --prefix=/usr/local/courier-authlib --sysconfdir=/etc --with-authmysql --with-mysql-libs=/usr/lib/mysql --with-mysql-includes=/usr/include/mysql --with-redhat --with-authmysqlrc=/etc/authmysqlrc --with-authdaemonrc=/etc/authdaemonrc --with-ltdl-lib=/usr/lib --with-ltdl-include=/usr/include
执行命令并指定安装路径
执行 make和make install
chmod 755 /usr/local/courier-authlib/var/spool/authdaemon 修改权限
cp /etc/authdaemonrc.dist /etc/authdaemonrc
cp /etc/authmysqlrc.dist /etc/authmysqlrc
生成两个脚本文件
vim /etc/authdaemonrc

 

vim /etc/authmysqlrc编辑此文件按下面要求更改
MYSQL_SERVER localhost
MYSQL_PORT 3306                    (指定你的 mysql监听的端口,这里使用默认的3306)
MYSQL_USERNAME extmail       (这时为后文要用的数据库的所有者的用户名 )
MYSQL_PASSWORD extmail         (密码 )
MYSQL_SOCKET /var/lib/mysql/mysql.sock
MYSQL_DATABASE extmail
MYSQL_USER_TABLE mailbox
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)
cp courier-authlib.sysvinit /etc/init.d/courier-authlib生成一个文件
chmod 755 /etc/init.d/courier-authlib  更改文件权限
service courier-authlib start 启动服务
chkconfig --add courier-authlib 把服务加入 chkconfig组,可以设置为开机启动
chkconfig courier-authlib on
echo "/usr/local/courier-authlib/lib/courier-authlib" >> /etc/ld.so.conf.d/courier-authlib.conf  把启动文件放到系统默认的位置
mkdir -pv /var/mailbox 创建虚拟账号目录
chown -R postfix /var/mailbox 修改目录权限拥有者
vim /usr/lib/sasl2/smtpd.conf编辑验证文件保证内容是下面内容
pwcheck_method: authdaemond
mech_list:PLAIN LOGIN
authdaemond_path:/usr/local/courier-authlib/var/spool/authdaemon/socket
 
修改完成后 service saslauthd restart重启验证服务
service courier-authlib restart 重启 cour服务
编辑文件 vim /etc/postfix/main.cf使postfix支持虚拟账号和虚拟域

第四部:安装 extmail
tar -zxvf extmail-1.2.tar.gz拆解安装包,但不需要安装,只需要导入 mysql
tar -zxvf extman-1.1.tar.gz拆解相关安装包
cd /root/extman-1.1/docs切换到目录
mysql -u root -p <extmail.sql 向 mysql中导入文件
mysql -u root -p <init.sql
cp mysql_virtual_* /etc/postfix/ 拷贝 mysql文件到指定文件
进入 mysql设置extmail管理用户
GRANT all privileges on extmail.* TO extmail@localhost IDENTIFIED BY 'extmail';
GRANT all privileges on extmail.* TO [email protected] IDENTIFIED BY 'extmail';
FLUSH PRIVILEGES;刷新生效
第五步:安装 dovecot
vim /etc/dovecot.conf编辑文件

 

禁用其中 795行的passdb pam { }      896行的userdb passwd { }
启用 930行的userdb sql { args = /etc/dovecot-mysql.conf }
启用 869行的passdb sql { args = /etc/dovecot-mysql.conf }
vim /etc/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'
编辑文件 vim /etc/postfix/main.cf 的415行的home_mailbox = Maildir/
service dovecot start启用 dovecot    chkconfig dovecot on
service postfix restart重启 postfix
第六步:安装 web下管理邮箱的extmail
mkdir -pv /var/www/extsuite 创建安装目录
mv extmail-1.2 /var/www/extsuite/extmail把上面解压的目录移动到指定目录
mv extman-1.1 /var/www/extsuite/extman
cd /var/www/extsuite/extmail切换到目录
cp webmail.cf.default webmail.cf拷贝生成所需文件
更改文件 vim webmail.cf中的某些项目
SYS_MESSAGE_SIZE_LIMIT = 5242880用户可以发送的最大邮件
SYS_USER_LANG = en_US语言选项,可改作: SYS_USER_LANG = zh_CN
SYS_MAILDIR_BASE = /home/domains此处即为您在前文所设置的用户邮件的存放目录,可改作: SYS_MAILDIR_BASE = /var/mailbox
SYS_MYSQL_USER = db_user
SYS_MYSQL_PASS = db_pass
以上两句句用来设置连接数据库服务器所使用用户名、密码和邮件服务器用到的数据库,这里修改为:
SYS_MYSQL_USER = extmail
SYS_MYSQL_PASS = extmail
 
SYS_MYSQL_HOST = localhost
指明数据库服务器主机名,这里默认即可
SYS_MYSQL_TABLE = mailbox
SYS_MYSQL_ATTR_USERNAME = username
SYS_MYSQL_ATTR_DOMAIN = domain
SYS_MYSQL_ATTR_PASSWD = password
以上用来指定验正用户登录里所用到的表,以及用户名、域名和用户密码分别对应的表中列的名称;这里默认即可
SYS_AUTHLIB_SOCKET = /var/spool/authdaemon/socket
此句用来指明 authdaemo socket文件的位置,这里修改为:
SYS_AUTHLIB_SOCKET = /usr/local/courier-authlib/var/spool/authdaemon/socket
 
第七步:配置 apache
service httpd start启用 apache          chkconfig httpd on
vim /etc/httpd/conf/httpd.conf编辑配置文件

 

修改 231和232行
User postfix
Group postfix
修改完成后
chown -R postfix.postfix /var/www/extsuite/extmail/cgi/ 修改 apache的运行身份
service httpd restart重启apache
打开网页访问 http://192.168.100.22/extmail
此时能访问但不能注册,因为还未安extman
第八部:Extman的安装
cd /var/www/extsuite/extman切换到extman的目录
cp webman.cf.default webman.cf生成所需配置文件
vim webman.cf编辑文件
SYS_MAILDIR_BASE = /home/domains
此处即为您在前文所设置的用户邮件的存放目录,可改作:
SYS_MAILDIR_BASE = /var/mailbox
修改 SYS_CAPTCHA_ON = 1 为   SYS_CAPTCHA_ON = 0
chown -R postfix.postfix /var/www/extsuite/extman/cgi/ 修改所有权限
mkdir -pv /tmp/extman创建运行的临时目录
chown postfix.postfix /tmp/extman更改所有者和组
当运行有问题时安装补丁
tar -zxvf Unix-Syslog-0.100.tar.gz 解压补丁包
cd Unix-Syslog-0.100切换到生成目录
perl Makefile.PL编译文件
make和 make install
service httpd restart安装完成后重启apache
重新从网页登陆选择管理即可登入extman进行后台管理了。默认管理帐号为: [email protected] 密码为:extmail*123*

 

在页面上可以创建账号,设置域的大小,进行邮件管理等。

注册一个新用户来收发邮件,测试配置的正确性。

你可能感兴趣的:(postfix,邮件系统,虚拟账号)