首页 运维 网络学院 查看内容

搭建Linux下邮件服务器(extmail+postfix+clamav)

2011-4-12 11:23 3453 0

摘要:   部分软件简介:  1、AMP ---apache(web服务) 、mysql(数据库)、php(非必需) 的简称  2、postfix --mta 邮件系统核心  3、courier-authli...
关键词: localhost extmail root extman mailgraph extsuite mysql php var www

  部分软件简介:  1、AMP ---apache(web服务) 、mysql(数据库)、php(非必需) 的简称  2、postfix --mta 邮件系统核心  3、courier-authlib--一个为courier-imap,maildrop,sasl2 提供用户信息的后台进程序  4、courier-imap --提供pop3,pop3s,imap,imaps 服务的程序  5、amavisd-new --提供内容过滤  6、clamav -- 著名的杀毒软件  7、extmail --一个著名的webmail程序  8、extman --与extmail集成的后台管理程序  安装环境:  centos 5.4  域名机器名:mail.uucun.lan  域名:uucun.lan  1、安装AMP  [root@localhost ~]# yum -y install httpd httpd-devel mysql mysql-devel mysql-server php php-xml php-cli php-pdo php-mbstring php-mcrypt php-gd php-common php-devel php-mysql  修改启动配置并启动  [root@localhost ~]# chkconfig --level 345  mysqld on  [root@localhost ~]# chkconfig --level 345  httpd on  [root@localhost ~]# service mysqld start  [root@localhost ~]# service httpd start  2、导入extman 后台数据库  [root@localhost ~]# tar zxf extman-0.2.5b1.tar.gz  [root@localhost ~]# cd extman-0.2.5b1/docs/  [root@localhost docs]# mysql -uroot -p <extmail.sql  Enter password:  [root@localhost docs]# mysql -uroot -p <init.sql  Enter password:  如何使用了phpmyadmin改了root 密码,记得输入密码,如果密码为空,请按回车。  3、安装authlib  A、安装依懒的包  [root@localhost ~]# yum -y install postgresql-devel expect libtool-ltdl-devel  B、安装生成的rpm  [root@localhost i386]# rpm -ivh courier-authlib-0.62.0-1.i386.rpm  [root@localhost i386]# rpm -ivh courier-authlib-devel-0.62.0-1.i386.rpm  [root@localhost i386]# rpm -ivh courier-authlib-mysql-0.62.0-1.i386.rpm  C、配置authlibdaemon  [root@localhost i386]# cd /etc/authlib/  [root@localhost authlib]# mv authdaemonrc authdaemonrc.bak  [root@localhost authlib]# vim authdaemonrc  输入下面的内容:  authmodulelist="authmysql"  authmodulelistorig="authmysql"  daemons=10  authdaemonvar=/var/spool/authdaemon  DEBUG_LOGIN=2  DEFAULTOPTIONS="wbnodsn=1"  LOGGEROPTS=""  D、配置authmysqlrc  [root@localhost authlib]# mv authmysqlrc authmysqlrc.bak  [root@localhost authlib]# vim authmysqlrc  输入下面的内容:  MYSQL_SERVER    localhost  MYSQL_USERNAME  root   #这里需要输入对extmail数据库有操作权限的mysql用户名  MYSQL_PASSWORD  uusql#2010  #这里需要输入对extmail数据库有操作权限的mysql密码  MYSQL_PORT      0  MYSQL_SOCKET    /tmp/mysql.sock  MYSQL_OPT       0  MYSQL_DATABASE  extmail  MYSQL_SELECT_CLAUSE     SELECT username,password,"",uidnumber,gidnumber,\  CONCAT('/home/data/domains/',homedir),               \  CONCAT('/home/data/domains/',maildir),               \  quota,                                          \  name                                            \  FROM mailbox                                    \  WHERE username = '$(local_part)@$(domain)'  E、启动authlib  [root@localhost ~]# service courier-authlib start  Starting Courier authentication services: authdaemond  [root@localhost ~]# chmod 777 /var/spool/authdaemon/  4、安装courier-imap  [root@localhost ~]# rpm -ivh courier-imap-4.1.2-1.i386.rpm  [root@localhost ~]# service courier-imap start  5、安装cyrus-sasl  A、安装SRPM  [root@localhost i386]# rpm -e --nodeps cyrus-sasl-devel cyrus-sasl-plain cyrus-sasl cyrus-sasl-lib (如果这些包存在)  [root@localhost i386]# rpm -ihv cyrus-sasl-lib-2.1.22-5.el5.i386.rpm  [root@localhost i386]# rpm -ihv cyrus-sasl-2.1.22-5.el5.i386.rpm  [root@localhost i386]# rpm -ihv cyrus-sasl-plain-2.1.22-5.el5.i386.rpm  B、配置sasl2  创建/usr/lib/sasl2/smtpd.conf 文件,输入下面的内容:  pwcheck_method:authdaemond  log_level:3  mech_list:PLAIN LOGIN  authdaemond_path:/var/spool/authdaemon/socket  6、安装postfix  A、安装软件包  [root@localhost i386]# rpm -ivh postfix-2.5.4-2.rhel4.i386.rpm  B、切换mta  [root@localhost i386]# alternatives --config mta (选择2,postfix)  [root@localhost i386]# rpm -e sendmail  [root@localhost i386]# cd /usr/sbin/  [root@localhost sbin]# mv sendmail sendmail.bak  [root@localhost sbin]# newaliases  [root@localhost sbin]# ln -s sendmail.postfix sendmail  C、配置postfix  [root@localhost ~]# cd /etc/postfix/  [root@localhost postfix]# mv main.cf main.cf.bak  [root@localhost postfix]# vim main.cf  输入下面的内容:  queue_directory = /var/spool/postfix  command_directory = /usr/sbin  daemon_directory = /usr/libexec/postfix  data_directory = /var/lib/postfix  mail_owner = postfix  unknown_local_recipient_reject_code = 550  debug_peer_level = 2  debugger_command =  PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin  ddd $daemon_directory/$process_name $process_id & sleep 5  sendmail_path = /usr/sbin/sendmail.postfix  newaliases_path = /usr/bin/newaliases.postfix  mailq_path = /usr/bin/mailq.postfix  setgid_group = postdrop  html_directory = /usr/share/doc/postfix-2.5.2-documentation/html  manpage_directory = /usr/share/man  sample_directory = /etc/postfix  readme_directory = /usr/share/doc/postfix-2.5.2-documentation/readme  alias_database = hash:/etc/postfix/aliases  alias_maps = hash:/etc/postfix/aliases  myhostname = mail.uucun.lan  mydomain = uucun.lan  mydestination = $myhostname  smtpd_banner = uucun.lan ESMTP Mail System  message_size_limit = 14680064  virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf  virtual_mailbox_base = /home/data/domains  virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf  virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf  virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_limit_maps.cf  virtual_transport = maildrop:  maildrop_destination_recipient_limit = 1  #sasl  smtpd_sasl_auth_enable = yes  smtpd_sasl2_auth_enable = yes  smtpd_sasl_security_options = noanonymous  broken_sasl_auth_clients = yes  smtpd_recipient_restrictions =  permit_mynetworks,  permit_sasl_authenticated,  reject_unauth_destination,  reject_unauth_pipelining,  reject_invalid_hostname  复制extman/docs 目录的cf 文件到/etc/postfix  [root@localhost postfix]# cp /root/extman-0.2.5b1/docs/mysql_virtual_* .  并修改这些配置文件的用户名为root,密码为uusql#2010  [root@localhost postfix]# service postfix start  7、安装maildrop  A、创建安装maildrop rpm  [root@localhost SPECS]# yum -y install pcre-devel  [root@localhost i386]# rpm -ivh maildrop-2.0.4-1.i386.rpm  B、添加虚似用户及创建目录  [root@localhost i386]# cd  [root@localhost ~]# groupadd -g 1000 vgroup  [root@localhost ~]# useradd -g 1000 -u 1000 -s /sbin/nologin -d /dev/null vuser  编辑/etc/postfix/master.cf ,加入下面的内容:  maildrop unix -     n     n     -     -     pipe  flags=DRhu user=vuser argv=/usr/bin/maildrop -d ${user}@${nexthop} ${recipient} ${user} ${extension} ${nexthop}  C、创建邮件存储目录  [root@localhost ~]# mkdir -p /home/data/domains/extmail.org/postmaster  [root@localhost ~]# maildirmake /home/data/domains/extmail.org/postmaster/Maildir  [root@localhost ~]# chown -R vuser:vgroup /home/data/domains/  D、测试maildrop  [root@localhost ~]# echo "test" | maildrop -V 10 -d [email protected]  maildrop: authlib: groupid=1000  maildrop: authlib: userid=1000  maildrop: authlib: [email protected], home=/home/data/domains/extmail.org/postmaster, mail=/home/data/domains/extmail.org/postmaster/Maildir/  maildrop: Changing to /home/data/domains/extmail.org/postmaster  Message start at 0 bytes, envelope [email protected]  maildrop: Attempting .mailfilter  maildrop: Delivery complete.  出现上以信息说明authlib,maildrop 工作正常  E、测试pop3  [root@localhost ~]# telnet localhost 110  Trying 127.0.0.1...  Connected to localhost.localdomain (127.0.0.1).  Escape character is '^]'.  +OK Hello there.  user [email protected]  +OK Password required.  pass extmail  +OK logged in.  list  +OK POP3 clients that break here, they violate STD53.  1 6  .  retr 1  +OK 6 octets follow.  test  .  quit  +OK Bye-bye.  Connection closed by foreign host.  F、测试postfix  [root@localhost ~]# perl -MMIME::Base64 -e 'print encode_base64("postmaster\@extmail.org");'  cG9zdG1hc3RlckBleHRtYWlsLm9yZw==  [root@localhost ~]# perl -MMIME::Base64 -e 'print encode_base64("extmail");'  ZXh0bWFpbA==  [root@localhost ~]# service postfix restart (重启一下)  [root@localhost ~]# telnet localhost 25  Trying 127.0.0.1...  Connected to localhost.localdomain (127.0.0.1).  Escape character is '^]'.  220 uucun.lan ESMTP Mail System  ehlo test.com  250-mail.uucun.lan  250-PIPELINING  250-SIZE 14680064  250-VRFY  250-ETRN  250-AUTH LOGIN PLAIN  250-AUTH=LOGIN PLAIN  250-ENHANCEDSTATUSCODES  250-8BITMIME  250 DSN  auth login  334 VXNlcm5hbWU6  cG9zdG1hc3RlckBleHRtYWlsLm9yZw==  334 UGFzc3dvcmQ6  ZXh0bWFpbA==  235 2.7.0 Authentication successful  quit  221 2.0.0 Bye  Connection closed by foreign host  8、安装amavisd-new杀毒软件  编辑/etc/yum.repos.d/CentOS-Base.repo 加入下面的内容:  [dag]  name=Dag RPM Repostory for Red Hat Enterprise Linux  baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag  gpgcheck=1  enabled=1  gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt  [root@localhost ~]# yum -y install clamav clamav-db clamd clamav-devel amavisd-new  编辑/etc/amavisd.conf,修改下面的内容  $mydomain = 'uucun.lan';   # a convenient default for other settings  把下面内容去掉注释,并修改为下面  ['ClamAV-clamd',  \&ask_daemon, ["CONTSCAN {} ", "/tmp/clamd.socket"],  qr/\bOK$/, qr/\bFOUND$/,  qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],  [root@localhost ~]# usermod -G amavis clamav  [root@localhost ~]# service clamd start  在/etc/postfix/master.cf 增加下面的内容:  smtp-amavis  unix    -    -    n    -    4    smtp  -o smtp_data_done_timeout=1200  -o smtp_send_xforward_command=yes  -o disable_dns_lookups=yes  127.0.0.1:10025 inet    n    -    n    -    -    smtpd  -o content_filter=  -o local_recipient_maps=  -o relay_recipient_maps=  -o smtpd_restriction_classes=  -o smtpd_helo_restrictions=  -o smtpd_sender_restrictions=  -o smtpd_recipient_restrictions=permit_mynetworks,reject  -o mynetworks=127.0.0.0/8  -o strict_rfc821_envelopes=yes  -o smtpd_error_sleep_time=0  -o smtpd_soft_error_limit=1001  -o smtpd_hard_error_limit=1000  -o receive_override_options=no_header_body_checks  在/etc/postfix/main.cf 加入下面的内容  content_filter = smtp-amavis:[localhost]:10024  [root@localhost ~]# service postfix reload  9、安装extman/extmail  A、配置apache  修改/etc/httpd/conf/httpd.conf,将下面的选项改为:  User vuser  Group vgroup  [root@localhost ~]# cd /etc/httpd/conf.d/  [root@localhost conf.d]# vim extmail.conf  输入下面的内容:  Alias /extman/cgi/ /var/www/extsuite/extman/cgi/  Alias /extman /var/www/extsuite/extman/html/  <Location "/extman/cgi">  SetHandler cgi-script  Options +ExecCGI  </Location>  # config for ExtMail  #Alias /cgi /var/www/extsuite/extmail/cgi/  #Alias / /var/www/extsuite/extmail/html/  Alias /extmail/cgi/ /var/www/extsuite/extmail/cgi/  Alias /extmail /var/www/extsuite/extmail/html/  <Location "/extmail/cgi">  SetHandler cgi-script  Options +ExecCGI  </Location>  [root@localhost ~]# mkdir /var/www/extsuite  [root@localhost ~]# tar zxf extmail-1.0.5b1.tar.gz  [root@localhost ~]# cp -r extmail-1.0.5b1 /var/www/extsuite/extmail  [root@localhost ~]# cp -r extman-0.2.5b1 /var/www/extsuite/extman  B、配置extmail参数  [root@localhost ~]# cd /var/www/extsuite/extmail/  [root@localhost extmail]# cp webmail.cf.default webmail.cf  修改webmail.cf 下面的选项  SYS_SESS_DIR = /tmp/extmail  SYS_MAILDIR_BASE = /home/data/domains  SYS_MYSQL_USER = root  SYS_MYSQL_PASS = uusql#2010  C、配置extman参数  [root@localhost extmail]# cd /var/www/extsuite/extman/  修改webman.cf 下面的选项:  SYS_MAILDIR_BASE = /home/data/domains  D、创建session 目录  [root@localhost extman]# mkdir /tmp/{extman,extmail}  [root@localhost extman]# chown vuser:vgroup /tmp/ext*  E、配置后台日志分析工具  [root@localhost addon]# cd /var/www/extsuite/extman/addon/  [root@localhost addon]# cp -r mailgraph_ext /usr/local/  将下面的内容加入/etc/rc.local  /usr/local/mailgraph_ext/mailgraph-init start  /usr/local/mailgraph_ext/qmonitor-init start  安装所依懒的软件包  [root@localhost mailgraph_ext]# yum -y install rrdtool perl-rrdtool perl-GD perl-File-Tail  F、启动后台进程  [root@localhost mailgraph_ext]# /usr/local/mailgraph_ext/qmonitor-init start  Starting queue statistics grapher: qmonitor  [root@localhost mailgraph_ext]# /usr/local/mailgraph_ext/mailgraph-init start  Starting mail statistics grapher: mailgraph_ext  G、访问extmail/extman  打开浏览器,输入http://your_ip_address/extmail 注意:your_ip_address 为你实际的ip  第一个测试用户为:postmaster 密码:extmail 域:extmail  打开浏览器,输入http://your_ip_address/extman  extman root 用户为:[email protected] 密码为:extmail*123*  注意:进入系统后要修改密码及找回密码的提示问题、答案。
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部