45IT.COM- 电脑学习从此开始!
DIY硬件教程攒机经验装机配置
设计Photoshop网页设计特效
系统注册表DOS系统命令其它
存储主板显卡外设键鼠内存
维修显卡CPU内存打印机
WinXPVistaWin7unix/linux
CPU光驱电源/散热显示器其它
修技主板硬盘键鼠显示器光驱
办公ExcelWordPowerPointWPS
编程数据库CSS脚本PHP
网络局域网QQ服务器
软件网络系统图像安全
页面导航: 首页 > 电脑学院 > 服务器技术 >

TurboLinux下架设Qmail服务器历程

电脑软硬件应用网 45IT.COM 时间:2007-04-05 13:30 作者:edwardcj

根据单位领导的意见,要替换掉目前的exchange邮件服务器。
至于新服务器使用什么系统,没有要求,但最好是正版软件或免费的,看来只有linux了。
 
2006/12/27
今天下午先找了一台IBM X345,准备先装个TurboLinux系统,开始这个服务器建设过程.
 
Turbo Linux Dataserver 7 安装
安装过程很简单,在73G的RAID5上,分了64M的/boot, 2G的/swap, 剩下的都给了/.
(机器: X345, 1CPU/至强2.8G, 1G内存, 3x3G硬盘做RAID5)
 
安装完毕,重新启动,登陆, OK。
ping局域网内其他机器, OK。
收起安装盘, 高高兴兴离开机房回办公室,准备远程登陆操作。
 
telnet 地址, 直接被拒绝?!
再次冲到机房, 本地telnet localhost也拒绝!
查资料,原来缺省telnet、ftp都关闭,
根据资料:
# chkconfig telnet on
修改配置文件,重新通知xinetd等等。。。
再次telnet,出现一些提示:
Trying ...
escape char is '^['
记不太清了,大概是这些,但没有出现login提示,
服务器直接关闭了连接,晕, 不知道哪里又少配了东西?
下班了,明天研究了,晚上到CU再找找资料看。
 
昨天晚上在CU上逛到半夜也没有找到自己想要的东东,今天只好再次尝试一下。
 
从头来过:
先用 ntsysv 关闭大部分服务,只留下
acpid\crond\gpm\kudzu\network\proftpd\random\syslog\telnet\xinetd
 
然后配置telnet:
# chkconfig telnet on
修改 /etc/hosts.allow,加入
in.telnetd : ALL
修改 /etc/xinetd.conf,放大并发数到
instances=600 因为只是测试用,也不用太大了,^_^
修改 /etc/pam.d/login,注释掉
auth required pam_securetty.so
关闭放火墙
# /etc/init.d/iptables stop
 
然后 telnet localhost 。。。 居然成功了!
不过不知道原因之所在,为什么今天重新操作一遍就OK了
是否是因为关闭了一些相关到telnet的一些控制服务?
唉,以前都用SCO,现在学linux也还真是痛苦啊
 
下一步,在CU上查资料,准备安装QMAIL,估计不会顺利,
先有个心理准备吧 :(
 
...
 
天啊,我要疯了,回到办公室,可以telnet到linux了,
但是ftp居然还是不行!!!
现在也没有其他路,先ftp到其他机器上取收安装包吧 :( 。。。 :-)
文件收好,又在CU上找到一篇文章:
邮件服务器(二)Qmail服务器
来源:本文出自:www.computerworld.com.cn 作者: 联想电脑公司软件事业部 汤海京 (2002-02-21 17:29:33)
依样画葫芦,开始做吧 (^_^),祝自己好运
安装包:
基本系统包:         netqmail-1.04.tar.gz
web方式用户注册:    vqregister-2.5.tar.gz
                     vqsignup-0.5.tar.gz
虚拟域web方式管理:  qmailadmin-1.2.9.tar.gz
自动回复程序:       autorespond-2.0.2.tar.gz
tcpserver等服务程序:ucspi-tcp-ssl-pid-0.88.tar.gz
监视工具:           daemontools-0.70.tar.gz
报表工具:           webreport-1.5.tar.gz
虚拟域用户pop3支持: vpopmail-5.4.17.tar.gz
目前还缺少:
pop3验证用户程序:checkpassword-0.90.tar.gz
webmail:         sqwebmail-1.2.4.tar.gz
邮件列表管理:    ezmlm-0.53.tar.gz
下次再说了。
安装QMAIL
先建立用户、组:
# mkdir /var/qmail
# groupadd nofiles
# useradd -g nofiles -d /var/qmail/alias alias
# useradd -g nofiles -d /var/qmail qmaild 
# useradd -g nofiles -d /var/qmail qmaill
# useradd -g nofiles -d /var/qmail qmailp
# groupadd qmail
# useradd -g nofiles -d /var/qmail qmailq
# useradd -g nofiles -d /var/qmail qmailr
# useradd -g nofiles -d /var/qmail qmails
安装QMAIL:
# cd /usr/local/src
# tar xvzf netqmail-1.04.tar.gz
# cd netqmail-1.04
这里和文章中有差别了,因为版本是 1.04,先打patch
# ./collate.sh
# cd netqmail-1.04
然后按照原文章中做下去:
# make setup check
# ./config-fast $HOSTNAME
# cd ~alias
# touch .qmail-postmaster .qmail-mailer-daemon .qmail-root
# sed 's/Mailbox/Maildir\//' /var/qmail/boot/home >/var/qmail/rc
# chmod 755 /var/qmail/rc
安装tcpserver等服务程序
# cd /usr/local/src
# tar xvzf ucspi-tcp-ssl-pid-0.88.tar.gz
# cd ucspi-tcp-ssl-pid-0.88
# make
# make setup check
安装pop3验证用户程序
哦,我现在还缺这个包,下午找,先休息一下了。。。
 
顺便说一句,刚才在这里发现好东东:
http://blog.chinaunix.net/u/22176/showart_220846.html
Linux qmail安装指南
已经收下,回去研究
 
台湾地震,搞的我连不上国外网站,软件包也下不来,只好等...


2006/12/29
上午没空,下午继续。。。
想起还有些包没安装,现在自己装一下看看有没有什么新发现。
虚拟域web方式管理:
# cd /usr/local/src
# tar xvfz qmailadmin-1.2.9.tar.gz
# cd qmailadmin-1.2.9
看看README, 有问题了,再看CU的文章:
  在安装前首先要考虑满足以下几项要求:
  a.是否拥有一个vpopmail用户vchkpw
  b.cgi-bin目录的所在位置
  c.ezmlm目录的所在位置
  d.autorespond目录的所在位置
  如果能够达到以上要求,可以继续安装
嘿嘿,b/c/d都没有啊。
不过,自动回复包好象有的,先装上
# cd /usr/local/src
# tar xvfz autorespond-2.0.2.tar.gz
# cd autorespond-2.0.2
看一下README,很简单么,编译就OK了
# make
# make install
那么,现在,a、d有了,启动apache的话b也有了。
# cd /etc/httpd/conf
# vi httpd.conf
修改一些配置,此处不多说
# cd ..
# vi php.ini
修改php配置,我主要放大了一些参数
没有找到apache的启动脚本,我到其他UNIX机器上ftp了一份
改一下启动路径和配置文件位置
# /etc/apache start
...
换个XP的机器,http://address/
YES,OK。。。
然后。。。装个 phpMyAdmin,看一下。。。OK
现在时间下午3:00了,下一步,先找到 ezmlm包再继续。

 
搞到ezmlm-0.53.tar.gz了
# tar xvfz ezmlm-0.53.tar.gz
# cd ezmlm-0.53
# make
发生了一个错误, substdo.c 中的 allwrite函数引用的一个变量 errno 未定义???
晕,彻底晕了,这个变量怎么会没有呢,已经包含了 errno.h 文件了啊!
不管了,我在该c文件中增加了定义 int errno;
# make
居然通过了!?
# make man
# make setup
不成功,创建 /usr/local/man 目录失败,因为已经存在了嘛!
也不管了,继续刚才的 qmailadmin 安装吧。。。
# cd /usr/local/src/qmailadmin-1.2.9
# ./configure --enable-cgibindir=/var/www/cgi-bin --enable-htmllibdir=/var/www/html/qmailadmin
然后,令人兴奋的时刻到了,IE中输入
http://yourdomain/cgi-bin/qmailadmin
my god,简单但是让我欢喜的画面出现了,输入域、密码,登陆成功!!!
新开一个帐户试试。。。OK,成功。
但是等等,怎么用户配额是无限制???
马上看文档,qmailadmin的INSTALL,原来要这样:
# cd /home/vpopmail/domains/yourdomain/
# vi .qmailadmin-limits
加上这么一行(我设了10M):
default_quota 10485760S
再新增一个用户,配额变成了10M了,OK,啦啦啦
今天还是有收获的,目前似乎只有一个Outlook无法收信的问题了?


2006/12/30
想起手里还有个包未装:
# cd /usr/local/src
# tar xvfz vqsignup-0.5.tar.gz
# cd vqsignup-0.5
看一下 INSTALL,第一句就是
This program is not easy to install, so good luck ;]
倒,当头一棒呀!再看下去:
要修改Makefile,但是没有这个文件!从Makefile.in生成?
目录下有个 configure,还是先运行这个吧:
先看configure的帮助,我使用了这个命令行:
# ./configure --enable-qmaildir=/var/qmail --enable-vpopuser=vpopmail  --enable-vpopgroup=vchkpw --enable-cgibindir=/var/www/cgi-bin --enable-htmldir=/var/www/html
看到最后生成了Makefile了,哈哈,make吧
# make
再看INSTALL,执行了以下命令:
# cp vqsignup /var/www/cgi-bin/vqsignup.cgi
# cp vqsignup.conf /var/www/cgi-bin/
# cp vqsignup.html /var/www/html/
# cd /var/www/cg-bin
# vi vqsignup.conf
把domain改为我自己的。
# cd ../html
# vi vqsignup.html
把domain改为我自己的。
然后 IE: http://address/vqsignup.html
简单的画面,输入用户、口令,回车。。。一片空白?
奇怪,再研究,似乎应该是没找到一些html文件吧,
把他们拷贝到cgi目录下试试:
# cd /var/www/cgi-bin
# mkdir vqsignup
# mkdir vqsignup/html
# cd mkdir vqsignup/html
# cp /var/www/html/vqsignup/html/* .
下面我把所以涉及到的文件都改了用户/组为 vpopmail/vchkpw
然后再 IE: http://address/vqsignup.html
简单的画面,输入用户、口令,回车,OK,显示成功了,虽然是英文的
再 IE:  http://108.32.13.116/cgi-bin/qmailadmin
用管理员 postmaster 登陆进去一看,哇哈哈,用户已经在那里了,配额也对!!!
HOHO,还算顺利呀,下面我就把这几个HTML文件稍稍汉化了一下,嘿嘿 :-)
顺便说一句,昨天碰到的,我的Outlook可以发却收不到的问题已经解决
是因为outlook的设置里,由于是虚拟用户,所以pop3的设置的帐户名称要全称:
mygod@yourdomain  就是我的电子邮件地址啦。
不过,碰到新问题,似乎发信不需要身份认证!!!还要查资料改配置呀,任重道远啊!!!


2006/12/30
下午了,正好有点时间,来看看下载下来的资料(都是来自CU的,哇哈哈,表BS我)
给qmail加上邮件大小限制
# cd /var/qmail/control
# vi databytes
加入一行,3072000 ,是字节数,3M大小的限制。
测试一下,OK,outlook收到一个邮件太大的错误信息。

现在总结一下我的邮件服务器:
1、工作环境
   Turbo Linux Dataserver 7
     apache-1.3.27
     php-4.2.3
     mysql-server-4.0.20
   以上是系统自带的web服务器、php和mysql
   自己安装的软件如下:
   qmail-1.04               
   vqsignup-0.5
   qmailadmin-1.2.9
   autorespond-2.0.2
   ucspi-tcp-ssl-pid-0.88
   daemontools-0.70
   vpopmail-5.4.17
   ezmlm-0.53
2、功能
   SMTP/POP3收发信
   虚拟域支持
   邮件用户/系统用户分离
   邮件列表支持
   邮件大小限制
   邮件转发
   自动回复
   Web管理
   用户web注册
3、不足
   缺少SMTP发信认证功能,容易被滥用!!!
   没有webmail
   没有反垃圾邮件
   没有反病毒支持
   。。。
不过,鉴于三~四天前,我对邮件服务器还是一窍不通的情况下,
而且,等光缆修好了,再去下载checkpassword和sqwebmail来,
估计可以再有点进步,其他的功能就慢慢来吧,这样一想,
我不禁还是有点沾沾自喜了。。。BS
 
明天就休息了,接下来就是2007年1月4日了,希望可以有新惊喜!
 
2007/1/18
最新一直忙于其他琐事,今天下午才有了点时间。
上网下载到了 checkpassword-0.90.tar.gz,cmd5checkpw-0.22.tar.gz
开始忙乎吧:
# cd /usr/local/src/
# tar xfvz checkpassword-0.90.tar.gz
# cd checkpassword-0.90
# make
居然出现错误!!!
undefined reference to `errno' 。。。
又是未定义变量,太太太那个什么了吧?!
不管了,照上次一样处理了,
在 checkpassword.c 和 buffer_put.c 中增加了这个变量定义 int errno;
# make
居然通过,下面:
# make setup check
没有错误
# cd /usr/local/src
# tar xvfz cmd5checkpw-0.22.tar.gz
# cd cd cmd5checkpw-0.22
# mkdir /usr/man/man8
# make
# make install
好了,下面来搞这个SMTP认证吧。
修改qmail启动脚本文件 /var/qmail/bin/qmail
将smtp启动命令改为:
/usr/local/bin/tcpserver -v -x /etc/tcp.smtp.cdb 0 smtp \
/var/qmail/bin/qmail-smtpd /home/vpopmail/bin/vchkpw \
/bin/true /bin/md5checkpw /bin/true  2>&1 | \
/var/qmail/bin/splogger smtpd 3 &
重起qmail,测试一下看。。。
没有起作用?我随便输了个密码也通过?
换个不存在的用户。。。也通过?
这次把收件人换成其他服务器的地址。。。还是通过了!!!
看来有问题啊,再查资料吧。。。
好象是少了smtp认证补丁,再下一个
www.nimh.org/dl/qmail-smtpd.c
覆盖掉原文件,再编译一遍。。。
# /var/qmail/bin/qmail stop
# make setup check
# /var/qmail/bin/qmail start
再测试发信。。。
1、发给其他服务器
   错的发信用户   被拒绝
   对的发信用户,错的密码 被拒绝
   对的用户/密码  成功
2、发给本机用户(存在的用户/不存在的用户)
   错的发信用户 成功
   对的发信用户,错的密码 成功
   对的用户/密码  成功
真是一个奇怪的结果啊!

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
无法在这个位置找到: baidushare.htm
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
你可能感兴趣的文章
推荐知识