设为首页 收藏本站
查看: 1425|回复: 0

[经验分享] 搭建Linux下邮件服务器(extmail+postfix+clamav)

[复制链接]

尚未签到

发表于 2015-11-24 08:50:07 | 显示全部楼层 |阅读模式
部分软件简介:
  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
  [iyunv@localhost ~]# yum -y install httpd httpd-devel mysql mysql-devel mysql-server php php-xml php-cli php-pdo php-mbstringphp-mcrypt php-gd php-common php-devel php-mysql
  修改启动配置并启动
  [iyunv@localhost ~]# chkconfig --level 345  mysqld on
  [iyunv@localhost ~]# chkconfig --level 345  httpd on
  [iyunv@localhost ~]# service mysqld start
  [iyunv@localhost ~]# service httpd start
  2、导入extman 后台数据库
  [iyunv@localhost ~]# tar zxf extman-0.2.5b1.tar.gz
  [iyunv@localhost ~]# cd extman-0.2.5b1/docs/
  [iyunv@localhost docs]# mysql -uroot -p <extmail.sql
  Enter password:
  [iyunv@localhost docs]# mysql -uroot -p <init.sql
  Enter password:
  如何使用了phpmyadmin改了root 密码,记得输入密码,如果密码为空,请按回车。
  3、安装authlib
  A、安装依懒的包
  [iyunv@localhost ~]# yum -y install postgresql-devel expect libtool-ltdl-devel
  B、安装生成的rpm
  [iyunv@localhost i386]# rpm -ivh courier-authlib-0.62.0-1.i386.rpm
  [iyunv@localhost i386]# rpm -ivh courier-authlib-devel-0.62.0-1.i386.rpm
  [iyunv@localhost i386]# rpm -ivh courier-authlib-mysql-0.62.0-1.i386.rpm
  C、配置authlibdaemon
  [iyunv@localhost i386]# cd /etc/authlib/
  [iyunv@localhost authlib]# mv authdaemonrc authdaemonrc.bak
  [iyunv@localhost authlib]# vim authdaemonrc
  输入下面的内容:
  authmodulelist=&quot;authmysql&quot;
  authmodulelistorig=&quot;authmysql&quot;
  daemons=10
  authdaemonvar=/var/spool/authdaemon
  DEBUG_LOGIN=2
  DEFAULTOPTIONS=&quot;wbnodsn=1&quot;
  LOGGEROPTS=&quot;&quot;
  D、配置authmysqlrc
  [iyunv@localhost authlib]# mv authmysqlrc authmysqlrc.bak
  [iyunv@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,&quot;&quot;,uidnumber,gidnumber,\
  CONCAT('/home/data/domains/',homedir),               \
  CONCAT('/home/data/domains/',maildir),               \
  quota,                                          \
  name                                            \
  FROM mailbox                                    \
  WHERE username = '$(local_part)@$(domain)'
  E、启动authlib
  [iyunv@localhost ~]# service courier-authlib start
  Starting Courier authentication services: authdaemond
  [iyunv@localhost ~]# chmod 777 /var/spool/authdaemon/
  4、安装courier-imap
  [iyunv@localhost ~]# rpm -ivh courier-imap-4.1.2-1.i386.rpm
  [iyunv@localhost ~]# service courier-imap start
  5、安装cyrus-sasl
  A、安装SRPM
  [iyunv@localhost i386]# rpm -e --nodeps cyrus-sasl-devel cyrus-sasl-plain cyrus-sasl cyrus-sasl-lib (如果这些包存在)
  [iyunv@localhost i386]# rpm -ihv cyrus-sasl-lib-2.1.22-5.el5.i386.rpm
  [iyunv@localhost i386]# rpm -ihv cyrus-sasl-2.1.22-5.el5.i386.rpm
  [iyunv@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、安装软件包
  [iyunv@localhost i386]# rpm -ivh postfix-2.5.4-2.rhel4.i386.rpm
  B、切换mta
  [iyunv@localhost i386]# alternatives --config mta (选择2,postfix)
  [iyunv@localhost i386]# rpm -e sendmail
  [iyunv@localhost i386]# cd /usr/sbin/
  [iyunv@localhost sbin]# mv sendmail sendmail.bak
  [iyunv@localhost sbin]# newaliases
  [iyunv@localhost sbin]# ln -s sendmail.postfix sendmail
  C、配置postfix
  [iyunv@localhost ~]# cd /etc/postfix/
  [iyunv@localhost postfix]# mv main.cf main.cf.bak
  [iyunv@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
  [iyunv@localhost postfix]# cp /root/extman-0.2.5b1/docs/mysql_virtual_* .
  并修改这些配置文件的用户名为root,密码为uusql#2010
  [iyunv@localhost postfix]# service postfix start
  7、安装maildrop
  A、创建安装maildrop rpm
  [iyunv@localhost SPECS]# yum -y install pcre-devel
  [iyunv@localhost i386]# rpm -ivh maildrop-2.0.4-1.i386.rpm
  B、添加虚&#20284;用户及创建目录
  [iyunv@localhost i386]# cd
  [iyunv@localhost ~]# groupadd -g 1000 vgroup
  [iyunv@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、创建邮件存储目录
  [iyunv@localhost ~]# mkdir -p /home/data/domains/extmail.org/postmaster
  [iyunv@localhost ~]# maildirmake /home/data/domains/extmail.org/postmaster/Maildir
  [iyunv@localhost ~]# chown -R vuser:vgroup /home/data/domains/
  D、测试maildrop
  [iyunv@localhost ~]# echo &quot;test&quot; | maildrop -V 10 -d postmaster@extmail.org
  maildrop: authlib: groupid=1000
  maildrop: authlib: userid=1000
  maildrop: authlib: logname=postmaster@extmail.org,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 sender=postmaster@extmail.org
  maildrop: Attempting .mailfilter
  maildrop: Delivery complete.
  出现上以信息说明authlib,maildrop 工作正常
  E、测试pop3
  [iyunv@localhost ~]# telnet localhost 110
  Trying 127.0.0.1...
  Connected to localhost.localdomain (127.0.0.1).
  Escape character is '^]'.
  &#43;OK Hello there.
  user postmaster@extmail.org
  &#43;OK Password required.
  pass extmail
  &#43;OK logged in.
  list
  &#43;OK POP3 clients that break here, they violate STD53.
  1 6
  .
  retr 1
    &#43;O
  K 6 octets follow.
  test
  .
  quit
  &#43;OK Bye-bye.
  Connection closed by foreign host.
  F、测试postfix
  [iyunv@localhost ~]# perl -MMIME::Base64 -e 'print encode_base64(&quot;postmaster\@extmail.org&quot;);'
  cG9zdG1hc3RlckBleHRtYWlsLm9yZw==
  [iyunv@localhost ~]# perl -MMIME::Base64 -e 'print encode_base64(&quot;extmail&quot;);'
  ZXh0bWFpbA==
  [iyunv@localhost ~]# service postfix restart (重启一下)
  [iyunv@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
  [iyunv@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, [&quot;CONTSCAN {} &quot;, &quot;/tmp/clamd.socket&quot;],
  qr/\bOK$/, qr/\bFOUND$/,
  qr/^.*?: (?!Infected Archive)(.*) FOUND$/ ],
  [iyunv@localhost ~]# usermod -G amavis clamav
  [iyunv@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
  [iyunv@localhost ~]# service postfix reload
  9、安装extman/extmail
  A、配置apache
  修改/etc/httpd/conf/httpd.conf,将下面的选项改为:
  User vuser
  Group vgroup
  [iyunv@localhost ~]# cd /etc/httpd/conf.d/
  [iyunv@localhost conf.d]# vim extmail.conf
  输入下面的内容:
  Alias /extman/cgi/ /var/www/extsuite/extman/cgi/
  Alias /extman /var/www/extsuite/extman/html/
  <Location &quot;/extman/cgi&quot;>
  SetHandler cgi-script
  Options &#43;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 &quot;/extmail/cgi&quot;>
  SetHandler cgi-script
  Options &#43;ExecCGI
  </Location>
  [iyunv@localhost ~]# mkdir /var/www/extsuite
  [iyunv@localhost ~]# tar zxf extmail-1.0.5b1.tar.gz
  [iyunv@localhost ~]# cp -r extmail-1.0.5b1 /var/www/extsuite/extmail
  [iyunv@localhost ~]# cp -r extman-0.2.5b1 /var/www/extsuite/extman
  B、配置extmail参数
  [iyunv@localhost ~]# cd /var/www/extsuite/extmail/
  [iyunv@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参数
  [iyunv@localhost extmail]# cd /var/www/extsuite/extman/
  修改webman.cf 下面的选项:
  SYS_MAILDIR_BASE = /home/data/domains
  D、创建session 目录
  [iyunv@localhost extman]# mkdir /tmp/{extman,extmail}
  [iyunv@localhost extman]# chown vuser:vgroup /tmp/ext*
  E、配置后台日志分析工具
  [iyunv@localhost addon]# cd /var/www/extsuite/extman/addon/
  [iyunv@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
  安装所依懒的软件包
  [iyunv@localhost mailgraph_ext]# yum -y install rrdtool perl-rrdtool perl-GD perl-File-Tail
  F、启动后台进程
  [iyunv@localhost mailgraph_ext]# /usr/local/mailgraph_ext/qmonitor-init start
  Starting queue statistics grapher: qmonitor
  [iyunv@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 用户为:root@extmail.org 密码为:extmail*123*
  注意:进入系统后要修改密码及找回密码的提示问题、答案。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-142861-1-1.html 上篇帖子: postfix安装milter-limit限制发件频率 下篇帖子: 在Debian 4.0 rc3上安装postfix+sasl 验证及防垃圾SPAM机制
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表