服务器 频道

Linux qmail安装指南<2>

  【IT168 服务器学院】第三节:下载所需要的软件包 

  些篇文档所使用的软件清册如下:

  qmail – 本文的主角,世界上使用最广的邮件系统之一。此处使用的是netqmail-1.05的补丁集和shupp.org的Toaster 7.0运行脚本
  ucspi-tcp - ucspi-tcp软件包由一组工具组成。它们用来简单的建立客户机-服务器tcp后台程序
  daemontools - 是inetd和winetd的代替品,用它来监听qmail-send,qmail-smtpd,qmail-pop3d
  Vpopmail - 一个以qmail为基础的虚拟域管理包,其允许在一个IP地址添加多个虚拟域 
  iGenus - 大麻兄的作品,PHP编写的Webmail
  iGenus_Admin -通过WEB添加域和帐号
  Courier-imap -此邮件系统的IMAP模块
  ezmlm – 一个快速,强大的邮件列表程序,可以通过qmailadmin对其进行配置
  autorespond – 自动回复程序,可以很好的与qmailadmin配合使用
  qmailadmin – 通过WEB管理vpopmail域的极好工具
  vqadmin – 通过WEB添加域
  SpamAssassin – 垃圾邮件防止,中文垃圾邮件清理就靠它了
  Clamav - 一个免费的杀毒软件,此邮件系统的杀毒模块
  MailDrop – 邮件过滤工具,比较难以使用,但是值得学会它
  qmail-scanner – 一个扫描邮件队列的插件,其调用Clamav和SpamAssassin进行清除邮件病毒和垃圾邮件的动作
  qmailanalog – 分析难以理解的qmail日志,并每晚给出报告
  isoqlog - 一个qmail日志分析工具,可以分析和统计qmail的运行日志,并生成漂亮的HTML格式的报表
  MRTG - 多路由器通信监视器(MRTG)是在网络链路上监控通信负载的一件工具

  为了方便大家使用,我把下文中所提到的软件打成了一个包,下载地址为:

  http://www.xuki.org/qmail_2.9.tar.gz;

  大部份的软件都是用的最新版(2005年4月),我也将会跟踪软件的发行来更新些安装指南。

  那么下面让我们开始安装必须的软件:

  #创建/home/pkg/目录

  mkdir /home/pkg

  cd home

  #下载软件

  wget http://www.xuki.org/qmail_2.9.tar.gz

  #将软件解压缩到目录中

  tar -zvf qmail_2.9.tar.gz

  此安装指南中所使用的软件包有:

  autorespond-2.0.5.tar.gz
  clamav-0.83.tar.gz
  courier-authlib-0.55.tar.bz2
  courier-imap-4.0.2.tar.bz2
  daemontools-0.76.errno.patch
  daemontools-0.76.tar.gz
  ezmlm-0.53.tar.gz
  ezmlm-idx-0.42.tar.gz
  igenus_2.0.2_20040901_release.tgz
  igenus_admin_0.1.tgz
  isoqlog-2.1.1.tar.gz
  maildrop-1.8.0.tar.bz2
  mrtg-2.10.15-1.i386.rpm
  netqmail-1.05.tar.gz
  perl-Razor-Agent-2.40-2.i386.rpm
  perl-suidperl-5.8.5-12.1.1.i386.rpm
  qlogtools_errno.patch qlogtools-3.1.tar.gz
  qmailadmin-1.2.3.tar.gz
  qmailanalog-0.70.errno.patch
  qmailanalog-0.70.tar.gz
  qmailmrtg7-4.0.tar.gz
  qmail-scanner-1.25.tgz
  qmail-toaster-0.7.2.patch.bz2
  qms-analog-0.4.2.tar.gz
  spamassassin-3.0.2-2.1.el3.rf.i386.rpm
  squirrelmail-1.4.4.tar.gz
  sqwebmail-5.0.1.tar.bz2
  tnef-1.2.3.1.tar.gz
  toaster-scripts-0.7.tar.gz
  ucspi-tcp-0.88.errno.patch
  ucspi-tcp-0.88.tar.gz
  vpopmail-5.4.10.tar.gz
  vqadmin-2.3.6.tar.gz
  vqregister-2.6.tar.gz 

  #解压缩netqmail-1.05.tar.gz

  chmod 755 -R pkg

  cd pkg

  tar -xzf netqmail-1.05.tar.gz

  cd netqmail-1.05

  ./collate.sh

  注意:./collate.sh这一步不要忘

  第四节:安装qmail 

  除非你确实熟悉各个软件和系统结构,否则请按照如下步骤一步一步安装软件,此文将引导你安装一套完整的邮件系统。这个安装过程基

本上你只需要复制粘贴就可以完成。

  安装daemontools 

  daemontools是一个收集管理UNIX进程的工具.用它来监听qmail-send,qmail-smtpd,qmail-pop3d.

  参考:http://cr.yp.to/daemontools.html 

  #安装:

  cd /home/pkg

  tar -zxvf daemontools-0.76.tar.gz

  cd admin/daemontools-0.76

  patch -p1 < /home/pkg/netqmail-1.05/other-patches/daemontools-0.76.errno.patch

  package/install 

  # 验证daemontools已经正常运行:

  sleep 5

  ps ax | grep svscan 

  安装ucspi-tcp 

  ucspi-tcp软件包由一组工具组成。它们用来简单的建立客户机-服务器tcp后台程序。TcpServer是一个比inetd安全性更好的选择。它内

建有基于规则的连接控制,能完善地在达到预定义的最大系统负载时将连接推迟,这点比 inetd好。Tcpserver也被推荐与qmail一同使用,因

为它们是同一个作者编的程序。

  参考:http://cr.yp.to/ucspi-tcp.html

  #安装:

  cd /home/pkg

  tar zxvf ucspi-tcp-0.88.tar.gz

  cd ucspi-tcp-0.88

  patch -p1 < ../ucspi-tcp-0.88.errno.patch 

  make

  make setup check 

  安装qmail 

  参考:http://www.qmail.org

  http://www.lifewithqmail.org/

  这个toaster补丁,是下面这几个补丁的组合:

  smtp auth (SMTP认证)

  spf (发信人DNS检查)

  qmail-queue (如果要使用病毒扫描引擎则需要这个补丁)

  maildir++ patch 

  support oversize dns packets (not necessary if you use dnscache) 

  chkuser (检查本地vpopmail用户表,信头的语法,这个补丁需要在安装vpopmail后被安装。)

  spam throttle 

  qregex (匹配badmailfrom和badmailto文件里的规则)

  big concurrency (set the spawn limit above 255) 

  #安装:

  #创建所需要的用户

  mkdir /var/qmail

  groupadd nofiles

  useradd alias -g nofiles -d /var/qmail/alias -s /sbin/nologin

  useradd qmaild -g nofiles -d /var/qmail -s /sbin/nologin

  useradd qmaill -g nofiles -d /var/qmail -s /sbin/nologin

  useradd qmailp -g nofiles -d /var/qmail -s /sbin/nologin

  groupadd qmail

  useradd qmailq -g qmail -d /var/qmail -s /sbin/nologin

  useradd qmailr -g qmail -d /var/qmail -s /sbin/nologin

  useradd qmails -g qmail -d /var/qmail -s /sbin/nologin

  #顺便添加vpopmail用户

  groupadd vchkpw -g 89

  useradd vpopmail -u 89 -g vchkpw

  #准备安装qmail

  cd /home/pkg

  tar -xzf toaster-scripts-0.7.tar.gz

  cd netqmail-1.05/netqmail-1.05/

  # 搜索函数straynewline中的451改为553 

  vi qmail-smtpd.c

  # 当你的服务器收到无效格式的邮件时,会发送:"I am not going to accept that message at the moment,you can try again later",

对方服务器收到后,几秒钟后又会发送同样的邮件给你,造成多次的重复。 

  # 改为553后,你的服务器将直接发送:"I am not going to accept that message,don''t try sending it again.",告诉对方的服务器不

要再发这封无效的信件。 

  # RedHat/Fedora用户可能需要为TLS补丁链接一个include文件

  # 输入如下命令:

  ln -s /usr/kerberos/include/com_err.h /usr/include/

  # 删除sendmail的链接

  rm -rf /usr/sbin/sendmail

  #qmail编译安装

  make

  make setup check

  #注:qmail的补丁在vpopmail安装之后再打。 

  # 用你自己的主机名代替下面的mail.domain.com

  ./config-fast mail.domain.com 

  #设置管理员的邮箱地址。

  #发往root/postmaster/mailer-daemon地址的邮件将会由定义的管理员邮箱接收。

  #将如下的“admin@domain.com"替换成你的管理员邮箱。

  cd /var/qmail/alias

  echo "admin@domain.com" > .qmail-postmaster

  echo "admin@domain.com" > .qmail-mailer-daemon

  echo "admin@domain.com" > .qmail-root

  chmod 644 /var/qmail/alias/.qmail*

  #开启SPF设置

  echo ./Maildir/ >/var/qmail/control/defaultdelivery 

  echo 3 > /var/qmail/control/spfbehavior

  #添加qmail的帮助手册

  echo MANPATH /var/qmail/man >> /etc/man.config

  #为qmail服务建立监控目录和日志文件:

  mkdir -p /var/qmail/supervise/qmail-send/log

  mkdir -p /var/qmail/supervise/qmail-smtpd/log

  mkdir -p /var/qmail/supervise/qmail-pop3d/log

  mkdir -p /var/qmail/supervise/qmail-pop3ds/log

  cp /home/pkg/toaster-scripts-0.7/send.run /var/qmail/supervise/qmail-send/run

  cp /home/pkg/toaster-scripts-0.7/send.log.run /var/qmail/supervise/qmail-send/log/run

  cp /home/pkg/toaster-scripts-0.7/smtpd.run /var/qmail/supervise/qmail-smtpd/run

  cp /home/pkg/toaster-scripts-0.7/smtpd.log.run /var/qmail/supervise/qmail-smtpd/log/run

  cp /home/pkg/toaster-scripts-0.7/pop3d.run /var/qmail/supervise/qmail-pop3d/run

  cp /home/pkg/toaster-scripts-0.7/pop3d.log.run /var/qmail/supervise/qmail-pop3d/log/run

  cp /home/pkg/toaster-scripts-0.7/pop3ds.run /var/qmail/supervise/qmail-pop3ds/run

  cp /home/pkg/toaster-scripts-0.7/pop3ds.log.run /var/qmail/supervise/qmail-pop3ds/log/run

  echo 20 > /var/qmail/control/concurrencyincoming

  chmod 644 /var/qmail/control/concurrencyincoming

  chmod 755 /var/qmail/supervise/qmail-send/run

  chmod 755 /var/qmail/supervise/qmail-send/log/run

  chmod 755 /var/qmail/supervise/qmail-smtpd/run

  chmod 755 /var/qmail/supervise/qmail-smtpd/log/run

  chmod 755 /var/qmail/supervise/qmail-pop3d/run

  chmod 755 /var/qmail/supervise/qmail-pop3d/log/run

  chmod 755 /var/qmail/supervise/qmail-pop3ds/run

  chmod 755 /var/qmail/supervise/qmail-pop3ds/log/run

  mkdir -p /var/log/qmail/smtpd

  mkdir -p /var/log/qmail/pop3d

  mkdir -p /var/log/qmail/pop3ds

  chown -R qmaill /var/log/qmail

  #启动脚本:

  cd /home/pkg

  cp toaster-scripts-0.7/rc /var/qmail/rc

  chmod 755 /var/qmail/rc

  cp toaster-scripts-0.7/qmailctl /var/qmail/bin/

  chmod 755 /var/qmail/bin/qmailctl

  ln -s /var/qmail/bin/qmailctl /usr/bin

  ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail

  rm -rf /usr/lib/sendmail

  ln -s /var/qmail/bin/sendmail /usr/lib/sendmail 

  # 用daemontools来启动qmail-send和qmail-smtpd

  ln -s /var/qmail/supervise/qmail-send /var/qmail/supervise/qmail-smtpd /service 

  #命令:

  # 启动,停止,重启,查看队列等

  qmailctl start|stop|restart|doqueue|flush|reload|stat|pause|cont|cdb|queue|help 

  # 检查服务

  netstat -an | grep 25

  ps -ef | grep qmail

  ps -efl | grep "service errors" | grep -v grep 

  #日志:

  /var/log/maillog

  /var/log/qmail/current

  /var/log/qmail/pop3d/current

  /var/log/qmail/pop3ds/current

  /var/log/qmail/smtpd/current

  我建议重新回顾一下刚才我们所做的步骤以熟悉对qmail的安装. 下面我们将开始vpopmail的安装.

  第五节:安装vpopmail 

  vpopmail是一个以qmail为基础的虚拟域管理包;其允许在一个IP地址添加多个虚拟域;并且可以不需要使用系统帐号做邮件帐号。

  参考:http://vpopmail.sf.net

  #创建目录:

  mkdir -p /home/vpopmail/etc 

  # 设置默认域,红色部份改成你要设置的域。

  echo "domain.com" > /home/vpopmail/etc/defaultdomain 

  # 设置smtp规则,关闭open relays

  echo ''127.0.0.1:allow,RELAYCLIENT=""'' > /home/vpopmail/etc/tcp.smtp

  cd /home/vpopmail/etc ; tcprules tcp.smtp.cdb tcp.smtp.tmp < tcp.smtp 

  # 设置MySQL信息,第一个vpopmail是帐号,xukixu为密码,第二个vpopmail是数据库

  echo "localhost|0|vpopmail|xukixu|vpopmail" > /home/vpopmail/etc/vpopmail.mysql

  chmod 640 /home/vpopmail/etc/vpopmail.mysql 

  chown -R vpopmail.vchkpw /home/vpopmail/etc 

  # 在MySQL里添加vpopmail的帐号

  mysql -uroot -pxukixu

  CREATE DATABASE vpopmail;

  GRANT select,insert,update,delete,create,drop ON vpopmail.*

  TO vpopmail@localhost IDENTIFIED BY ''xukixu'';

  FLUSH PRIVILEGES;

  QUIT 

  #安装:

  cd /home/pkg/

  tar zxvf vpopmail-5.4.10.tar.gz

  cd vpopmail-5.4.10

  # 带数据库支持

  ./configure --enable-incdir=/usr/include/mysql --enable-libdir=/usr/lib/mysql --disable-roaming-users --enable-logging=p --disable-passwd --enable-clear-passwd --disable-domain-quotas --enable-auth-module=mysql --enable-auth-logging --enable-sql-logging --disable-valias --disable-mysql-limits --enable-learn-passwords

  make

  make install-strip 

  #管理:

  echo ''export PATH=$PATH:/home/vpopmail/bin'' >> /etc/profile

  source /etc/profile 

  # 添加域,红色部份前面是域名,后面是管理员(postmaster)密码

  vadddomain domain.com xukixu

  # 添加用户,红色部份为注解,不用输入

  vadduser -q 10485760S(邮箱大小) xukixu@domain.com(邮箱帐号) 1234(密码)

  vmoduser -c 许靖(邮箱描述) xukixu@domain.com 

  # 设置邮箱容量达到90%的警告信息

  vi /home/vpopmail/domains/.quotawarn.msg 

  From: 邮箱管理员 

  Reply-To: postmaster@domain.com

  To: 邮箱用户

  Subject: 邮箱空间警告

  Mime-Version: 1.0

  Content-Type: text/html; charset=gb2312

  Content-Transfer-Encoding: base64 

  您的邮箱空间已经达到90%.如果想继续使用,请删除一些信件.

  如果需要帮助,请联系邮箱管理员:

  Email : postmaster@domain.com 

  # 设置邮箱已满的警告信息

  echo "邮件被拒绝,用户的邮箱空间已满." > /home/vpopmail/domains/.over-quota.msg 

  #启动脚本:

  cp /home/pkg/toaster-scripts-0.7/vpopmailctl /var/qmail/bin

  ln -s /var/qmail/bin/vpopmailctl /usr/bin

  chmod 755 /var/qmail/bin/vpopmailctl 

  #现在打上qmail的补丁:

  cd /home/pkg/netqmail-1.05/netqmail-1.05

  bunzip2 -c /home/pkg/qmail-toaster-0.7.2.patch.bz2 | patch -p0

  make clean

  make

  qmailctl stop

  make setup check

  chown -R vpopmail:vchkpw /var/qmail/spam 

  #创建SSL Key

  make cert

  #按提示输入公司信息

  [root@mail netqmail-1.05]# make cert

  Generating a 1024 bit RSA private key

  .............++++++

  ...............++++++

  writing new private key to ''/var/qmail/control/servercert.pem''

  -----

  You are about to be asked to enter information that will be incorporated

  into your certificate request.

  What you are about to enter is what is called a Distinguished Name or a DN.

  There are quite a few fields but you can leave some blank

  For some fields there will be a default value,

  If you enter ''.'', the field will be left blank.

  -----

  Country Name (2 letter code) [GB]:CN

  State or Province Name (full name) [Berkshire]:GD

  Locality Name (eg, city) [Newbury]:SZ

  Organization Name (eg, company) [My Company Ltd]:Domain

  Organizational Unit Name (eg, section) []:Domain

  Common Name (eg, your name or your server''s hostname) []:domain.com

  Email Address []:xukixu@domain.com

  make tmprsadh

  #注:这里可能要多等一会

  chown -R vpopmail:qmail /var/qmail/control/clientcert.pem /var/qmail/control/servercert.pem

  # 用"crontab -e"在crontab里增加下面这条,每天晚上更新temp keys

  01 01 * * * /var/qmail/bin/update_tmprsadh > /dev/null 2>&1 

  #起动qmail

  qmailctl start 

  # 用daemontools来启动qmail-pop3d和qmail-pop3ds

  ln -s /var/qmail/supervise/qmail-pop3d /service

  ln -s /var/qmail/supervise/qmail-pop3ds /service 

  #命令:

  # 启动,停止,重启,查看队列等

  vpopmailctl start|stop|restart|stat|pause|cont|help 

  # 检查服务

  netstat -an | grep 110

  ps -ef | grep qmail

  ps -efl | grep "service errors" | grep -v grep

  安装选项参考:

  vpopmail 5.4.10

  Current settings

  ---------------------------------------

  vpopmail directory = /home/vpopmail

  uid = 89

  gid = 89

  roaming users = OFF --disable-roaming-users (default)

  password learning = ON --disable-learn-passwords (default)

  md5 passwords = ON --enable-md5-passwords (default)

  file locking = ON --enable-file-locking (default)

  vdelivermail fsync = OFF --disable-file-sync (default)

  make seekable = ON --enable-make-seekable (default)

  clear passwd = ON --enable-clear-passwd (default)

  user dir hashing = ON --enable-users-big-dir (default)

  address extensions = OFF --disable-qmail-ext (default)

  ip alias = OFF --disable-ip-alias-domains (default)

  domain quotas = OFF --disable-domainquotas (default)

  auth module = mysql --enable-auth-module=mysql

  mysql replication = OFF --disable-mysql-replication (default)

  sql logging = ON --enable-sql-logging

  mysql limits = OFF --disable-mysql-limits (default)

  MySQL valias = OFF --disable-valias (default)

  auth inc = -I/usr/include/mysql

  auth lib = -L/usr/lib/mysql -lmysqlclient -lz -lm

  system passwords = OFF --disable-passwd (default)

  pop syslog = show failed attempts with clear text password

  --enable-logging=p

  auth logging = ON --enable-auth-logging (default)

  all domains in one SQL table = --enable-many-domains (default)

  #POP3和SMTP测试

  用outlook测试qmail的smtp和pop3是否正常,注意由于vpopmail支持虚拟域名,所以在outlook中设置邮件帐号时,用户名后要加上域名,如demo@demo.com。smtp是带认证的,在outlook中也要作相应设置。建议先测试正常后再进行下一步安装。如果qmail出现问题,可查看mysql中的vpopmail数据库,/var/log下的mysqld和maillog日志记录,这样容易很快找出问题。

0
相关文章