根据单位领导的意见,要替换掉目前的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、发给本机用户(存在的用户/不存在的用户) 错的发信用户 成功 对的发信用户,错的密码 成功 对的用户/密码 成功 真是一个奇怪的结果啊!
|