歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Unix知識 >> 關於Unix >> 設置一個企業級的LinuxPOP3服務器

設置一個企業級的LinuxPOP3服務器

日期:2017/3/6 15:49:46   编辑:關於Unix
一: 概述 本文旨在介紹如何使用開放源軟件Procmail和Qpopper來設置一台可供企業級客戶使用的POP3 服務器 ,同時保證極好的 性能 和 安全 性。重點介紹如何設置Procmail和Qpopper利用hash spool 目錄結構存儲用戶郵件。 二: 步驟 軟件環境為RedHat Linux 6.2 1
  一: 概述
  本文旨在介紹如何使用開放源軟件Procmail和Qpopper來設置一台可供企業級客戶使用的POP3服務器,同時保證極好的性能安全性。重點介紹如何設置Procmail和Qpopper利用hash spool 目錄結構存儲用戶郵件。
  
  二: 步驟
  軟件環境為RedHat Linux 6.2
  
  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. 編譯Procmail
  
  假設下載的文件放在/root
  
  #cd /root
  
  #tar xvfz procmail-3.21.tar.gz
  #cd procmail-3.21
  
  #vi src/authenticate.c
  改#define MAILSPOOLHASH 後面的0 為 2 (二級hash目錄,改進服務器性能,特別是有大量用戶時)
  
  注:這樣的話,如果用戶的信箱為[email protected],則文件應存在/usr/mail/j/e/jephe
  
  再改src/autoconf 文件,這裡我用的mail spool目錄為/usr/mail,則
  #vi src/autoconf
  搜索/usr/mail,改for a in /var/spool/mail /usr/spool/mail /var/mail /usr/mail /spool/mail到for a in /usr/mail
  
  #make
  #make install-suid
  
  然後以root身份運行#procmail -v檢查用戶的郵件路徑是不是/usr/mail/r/o/root。
  
  3. 編譯Qpopper
  
  假設下載的文件在/root
  
  #cd /root
  #tar xvfz qpopper4.0.4.tar.gz
  #cd qpopper4.0.4
  #vi popper/pop_extend.c
  change "IMPLEMENTATION %s%.*s%s-version-%s\r\n" to "IMPLEMENTATION \r\n".
  為什麼?
  因為如果不改的話,用戶用te.net server 110命令然後用user username and passpassword命令通過認證後,可以用capa命令得到服務器的qpopper版本號。
  
  ##./configure --enable-hash-spool=2 --enable-log-login --enable-server-mode--enable-shy
  --enable-spool-dir=/usr/mail --enable-specialauth --enable-temp-drop-dir=/var/spool/cache
  --enable-fast-update --disable-check-pw-max --disable-old-spool-loc
  
  note:
  
  你也可以編譯成獨立運行模式,在上面的編譯選項後加上
  --enable-standalone即可,這樣就不用下面介紹的xinetd中的設置和/etc/inetd.conf中的設置而直接運行了命令行為/usr/local/sbin/popper -S -F -s -c -R -T120
  
  注: --enable-specialauth 使用/etc/shadow 密碼認證
  --enable-hash-spool=2 用二級hash結構
  --enable-spool-dir=/usr/mail 則用戶信箱文件為/usr/mail/j/e/jephe
  
  關於--enable-fast-update?
  如果你的臨時spool目錄/var/spool/cache所在的分區和mail spool/usr/mail所在的分區不同,則不要用--enable-fast-update,因為不僅你享受不到fast-update模式帶來的好處,還會在maillog中留下多余的錯誤信息。
  
  #make
  #make install
  
  你需要在/usr/mail和/var/spool/cache下創建兩層hash目錄結構,可以寫一個script來做。
  
  編輯文件/etc/inetd.conf
  注釋以pop-3開頭的行,然後在後面再添加下面的行:
  pop-3 stream tcp nowait.400 root /usr/local/sbin/popper -F -S -s -c -R -T120
  
  如果是Redhat 7.1 ,則在/etc/xinetd.d下創建文件pop3,包含下面的內容:
  
  service pop3
  {
  socket_type = stream
  protocol = tcp
  wait = no
  user = root
  server = /usr/local/sbin/popper
  server_args = qpopper -S -F -s -c -R -T120
  port = 110
  }
  
  如果你在/etc/hosts.deny中設置了ALL:ALL,則要在/etc/hosts.allow中輸入
  
  popper:ALL
  
  另外,在Redhat 7中在/etc/xinetd.d下面有個文件ipop3,是默認的pop3服務,你應該刪掉這個文件或者注釋出該服務。
  
  3. 創建POP3用戶
  
  你不需要為mail用戶分配home目錄,也不需要設置其主目錄為/usr/mail/j/e (假定用戶為jephe),用下面的命令創建用戶。
  
  #useradd mailuser1 -c "Mail User1" -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

Copyright © Linux教程網 All Rights Reserved