Linux上架設一臺高容量POP3服務器 |
發布時間: 2012/8/11 11:02:56 |
POP3(PostOfficeProtocol3)即郵局協議的第3個版本,它規定怎樣將個人計算機連接到互聯網上的郵件服務器和下載電子郵件的電子協議。
它是因特網電子郵件的第一個離線協議標準,POP3允許用戶從服務器上把郵件存儲到本地主機上,同時刪除保存在郵件服務器上的郵件,而POP3服務器則是遵循POP3協議的接收郵件服務器,用來接收電子郵件的。本文將介紹如何使用開源軟件Procmail和Qpopper,在Linux系統上配置一臺可供大量用戶使用的POP3服務器。 1、下載Procmail和Qpopper Procmail可從http://www.procmail.org/procmail-3.21.tar.gz下載。 Qpopper可從http://www.eudora.com/qpopper_general/下載。 2、編譯Qpopper 假設下載的文件放在/root #cd/root #tarxvfzqpopper4.0.3.tar.gz #cdqpopper4.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 #makeinstall 編輯文件/etc/inetd.conf 在/etc/xinetd.d下創建文件pop3,包含下面的內容: servicepop3 { 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 }注釋: -Fenablefastupdate -Senableservermode(在用戶對該服務器沒有shell存取時做) -s打開LOG功能 -c忽略用戶名的大小寫 -R不對連接進來的IP地址做反向域名檢查 -T設定超時時間
否則正常模式下是先把/usr/mail/j/e/jephe拷貝成.jephe.pop,最后用戶檢查信箱完畢再拷貝回來,增加了I/O處理時間 如果不是redhat則在/etc/inetd.conf中注釋以pop-3開頭的行,然后在后面再添加下面的行:pop-3streamtcpnowait.400root/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 #tarxvfzprocmail-3.21.tar.gz #cdprocmail-3.21 #visrc/authenticate.c 改#defineMAILSPOOLDIR行后面的/var/spool/mail為"/usr/mail/"(這里用的是/usr/mail)改#defineMAILSPOOLHASH后面的0為2(用二級hash目錄,改進服務器文件系統性能,特別是有大量用戶時) 注:這樣的話,如果用戶的信箱為jephe@domain.com,則文件應存在 /usr/mail/j/e/jephe #mv/var/spool/mail/var/spool/mail.bak 注:先換名這個目錄,因為可能當編譯時如果能找到該目錄,則優先用該目錄及hash層次結構,這樣的話將存儲用戶郵件到文件/var/spool/mail/j/e/jephe.如果你就想用這個目錄,就不用改上面的MAILSPOOLDIR行。 #make #makeinstall #makeinstall-suid 然后以root身份運行#procmail-v檢查用戶的郵件路徑確認為/usr/mail/r/o/root。 4、創建POP3用戶 你不需要為mail用戶分配home目錄,也不需要設置其主目錄為/usr/mail/j/e(假定用戶為jephe),用下面的命令創建用戶。 #useraddjephe-c"JepheWu"-gmail-d/dev/null-s/bin/false 再可以寫一個批命令用chpasswd給每個用戶以同樣的password. 1)首先用passwd為mailuser1設置密碼,假定為"abc123",檢查/etc/shadow中的密碼。 2)創建一個新文件/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 編譯qpopper后,仍需在命令行上使用-F-S參數以啟動服務器模式和快速更新,請放-F在-S的前面。 本文出自:億恩科技【www.vbseamall.com】 |