Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> 電腦軟件教程 >> 服務器技術 >> 關於服務器 >> TurboLinux下架設Qmail服務器歷程

TurboLinux下架設Qmail服務器歷程

日期:2017/2/8 10:31:14      編輯:關於服務器

根據單位領導的意見,要替換掉目前的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、發給本機用戶(存在的用戶/不存在的用戶)
   錯的發信用戶 成功
   對的發信用戶,錯的密碼 成功
   對的用戶/密碼  成功
真是一個奇怪的結果啊!

Copyright © Windows教程網 All Rights Reserved