歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> 關於Unix

設置一個高容量的LinuxPOP3服務器

一: 概述 本文旨在介紹如何使用開放源軟件Procmail和Qpopper來配置一台可供大量用戶使用的POP3 服務器 ,重點在於如何保持最佳的服務器 性能 。 二: 步驟 軟件環境為RedHat Linux 7.1 1. 下載最新版的Procmail和Qpopper Procmail 最新版本現在是3.21 可從 htt 一: 概述 
本文旨在介紹如何使用開放源軟件Procmail和Qpopper來配置一台可供大量用戶使用的POP3服務器,重點在於如何保持最佳的服務器性能。 
二: 步驟 
軟件環境為RedHat Linux 7.1 
1. 下載最新版的Procmail和Qpopper 
Procmail 最新版本現在是3.21 可從
http://www.procmail.org/procmail-3.21.tar.gz下載。 
Qpopper 最新版本現在是4.0 可從
http://www.eudora.com/qpopper_general/下載 
2. 編譯Qpopper 
假設下載的文件放在/root
#cd /root 
#tar xvfz qpopper4.0.3.tar.gz 
#cd qpopper4.0.3 
#./configure --enable-hash-spool=2
--enable-log-login
--enable-server-mode
--enable-fast-update
--enable-shy
--enable-spool-dir=/usr/mail
--enable-specialauth 
注釋: 
--enable-specialauth 使用/etc/shadow 密碼認證 
--enable-hash-spool=2 使用二級hash結構 
--enable-spool-dir=/usr/mail 則用戶信箱文件為/usr/mail/j/e/jephe 
--enable-log-login 記錄下成功的POP3登錄進入syslog 
--enable-server-mode 和 --enable-fast-update
不要讓qpopper在用戶存取信箱時拷貝信箱文件到臨時文件
減少磁盤I/O,增強性能
--enable-shy 讓服務器響應時不要顯示版本信息,增強安全性 
#make 
#make install 
編輯文件/etc/.netd.conf 
在/etc/xinetd.d下創建文件pop3,包含下面的內容: 
service pop3 

socket_type = stream 
protocol = tcp 
wait = no 
user = root 
server = /usr/local/lib/popper 
server_args = qpopper -F -S -s -c -R -T120 
port = 110 

注釋:
-F enable fast update
-S enable server mode (在用戶對該服務器沒有shell存取時做)
-s 打開LOG功能
-c 忽略用戶名的大小寫
-R 不對連接進來的IP地址做反向域名檢查
-T 設定超時時間
這樣設定之後,如果用戶jephe收取信件時,則先鎖定信箱文件/usr/mail/j/e/jephe創建鎖文件.jephe.pop,檢查信件數目,退時出更新狀態,生成.jephe.cache文件。
否則正常模式下是先把/usr/mail/j/e/jephe拷貝成.jephe.pop,最後用戶檢查信箱完畢再拷貝回來,增加了I/O處理時間
如果不是redhat 7.1則在/etc/inetd.conf中注釋以pop-3開頭的行,然後在後面再添加下面的行: pop-3 stream tcp nowait.400 root /usr/local/sbin/popper -F -S -s -c -R -T120
nowait:400中的400是指每分鐘最多可接受的連接請求數目 
如果你在/etc/hosts.deny中設置了ALL:ALL,則要在/etc/hosts.allow中輸入 
popper:ALL 
3. 編譯Procmail 
假設下載的文件放在/root 
#cd /root 
#tar xvfz procmail-3.21.tar.gz 
#cd procmail-3.21 
#vi src/authenticate.c 
改#define MAILSPOOLDIR行後面的/var/spool/mail為 "/usr/mail/" (這裡我用的是
/usr/mail) 
改#define MAILSPOOLHASH 後面的0 為 2 (用二級hash目錄,改進服務器文件系統性能,特別是有大量用戶時)
注:這樣的話,如果用戶的信箱為[email protected],則文件應存在
/usr/mail/j/e/jephe 
#mv /var/spool/mail /var/spool/mail.bak 
注:先換名這個目錄,因為可能當編譯時如果能找到該目錄,則優先用該目錄及hash層次結構,這樣的話將存儲用戶郵件到文件/var/spool/mail/j/e/jephe.如果你就想用這個目錄,就不用改上面的MAILSPOOLDIR行。 
#make 
#make install 
#make install-suid 
然後以root身份運行#procmail -v檢查用戶的郵件路徑確認為/usr/mail/r/o/root。 
4. 創建POP3用戶 
你不需要為mail用戶分配home目錄,也不需要設置其主目錄為/usr/mail/j/e (假定用戶為jephe),用下面的命令創建用戶。 
#useradd jephe -c "Jephe Wu" -g mail -d /dev/null -s /bin/false 
再可以寫一個批命令用chpasswd給每個用戶以同樣的password. 
a. 首先用passwd為mailuser1設置密碼,假定為"abc123",檢查/etc/shadow中的密
碼,我的機器上"abc123" 
為 $1$G22Plicn$r5.bSe0U7DbaHN7tCevTR/ 
b. 創建一個新文件/tmp/password,每行包括一個用戶名:密碼 ,可從/etc/passwd用下面的命令取得 
cat /etc/passwd | awk -F: '{print $1}' |sed -e
's/$/:$$1$G22Plicn$r5.bSe0U7DbaHN7tCevTR\//g' 
c. 然後運行chpasswd < /tmp/password 
5. FAQ
a. 編譯qpopper後,仍需在命令行上使用-F -S參數以啟動服務器模式和快速更新,請放-F在-S的前面

Copyright © Linux教程網 All Rights Reserved