postfix郵件服務器進階

十三、配置postfix使用maildrop投遞郵件


 maildrop是一個使用C++編寫的用來代替本地MDA的帶有過濾功能郵件投遞代理,是courier郵件系統組件之一。它從標準輸入接受信息並投遞到用戶郵箱;maildrop既可以將郵件投遞到mailboxes格式郵箱,亦可以將其投遞到maildirs格式郵箱。同時,maildrop可以從文件中讀取入站郵件過濾指示,並由此決定是將郵件送入用戶郵箱或者轉發到其它地址等。和procmail不同的是,maildrop使用結構化的過濾語言,因此,郵件系統管理員可以開發自己的過濾規則並應用其中。

 我們在此將使用maildrop來代替postfix自帶的MDA,並以此爲基礎擴展後文的郵件殺毒和反垃圾郵件功能的調用;在此可能會修改前文中的許多設置,請確保您的設置也做了相應的修改。

 1、安裝

 將courier-authlib的頭文件及庫文件(參考第八部分的第四小節)鏈接至/usr目錄(編譯maildrop時會到此目錄下找此些相關的文件):
 # ln -sv /usr/local/courier-authlib/bin/courierauthconfig   /usr/bin
 # ln -sv /usr/local/courier-authlib/include/*   /usr/include

 maildrop需要pcre的支持,因此,需要事先提供pcre的頭文件及庫文件等開發組件。如果選擇以yum源來提供pcre,請確保安裝pcre-devel包。
 # yum -y install pcre-devel

 # groupadd -g 1001 vmail
 # useradd -g vmail -u 1001 -M -s /sbin/nologin vmail
 # tar xf maildrop-2.6.0.tar.bz2
 # cd maildrop-2.6.0
 # ./configure \
     --enable-sendmail=/usr/sbin/sendmail \
     --enable-trusted-users='root vmail' \
     --enable-syslog=1 --enable-maildirquota \
     --enable-maildrop-uid=1001 \
     --enable-maildrop-gid=1001 \
     --with-trashquota --with-dirsync
 # make
 # make install

 檢查安裝結果,請確保有"Courier Authentication Library extension enabled."一句出現:
 # maildrop -v
maildrop 2.6.0 Copyright 1998-2005 Double Precision, Inc.
GDBM/DB extensions enabled.
Courier Authentication Library extension enabled.
Maildir quota extension are now always enabled.
This program is distributed under the terms of the GNU General Public
License. See COPYING for additional information.


 2、新建其配置文件/etc/maildroprc文件,首先指定maildrop的日誌記錄位置:
 # vi /etc/maildroprc
 添加:
 logfile "/var/log/maildrop.log"

 # touch /var/log/maildrop.log
 # chown vmail.vmail /var/log/maildrop.log

 3、配置Postfix

 編輯master.cf
 # vi /etc/postfix/master.cf
 啓用如下兩行
 maildrop  unix  -       n       n       -       -       pipe
    flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient}

 注意:定義transport的時候,即如上兩行中的第二行,其參數行必須以空格開頭,否則會出錯。

 編輯main.cf
 # vi /etc/postfix/main.cf
 virtual_transport = virtual
 修改爲:
 virtual_transport = maildrop

 將下面兩項指定的UID和GID作相應的修改:
 virtual_uid_maps = static:2525
 virtual_gid_maps = static:2525
 修改爲:
 virtual_uid_maps = static:1001
 virtual_gid_maps = static:1001


 4、編輯/etc/authmysqlrc

 # vi /etc/authmysqrc
 MYSQL_UID_FIELD  '2525'
 MYSQL_GID_FIELD  '2525'
 更改爲:
 MYSQL_UID_FIELD  '1001'
 MYSQL_GID_FIELD  '1001'

注意:沒有此處的修改,maildrop可能會報告 “signal 0x06”的錯誤報告。

5、編輯/etc/httpd/httpd.conf,修改運行用戶:

如果啓用了suexec的功能,則將虛擬主機中指定的
SuexecUserGroup postfix postfix
修改爲:
SuexecUserGroup vmail vmail

如果沒有使用上面的功能,則修改User和Group指令後的用戶爲vmail
將前文中的如下項
User postfix
Group postfix
修改爲:
User vmail
Group vmail

6、將用戶郵件所在的目錄/var/mailbox和extman的臨時目錄/tmp/extman的屬主和屬組指定爲vmail
#chown -R vmail.vmail /var/mailbox
#chown -R vmail.vmail /tmp/extman

7、修改extman的主配置文件中的默認用戶ID和組ID,確保其爲類似如下內容
SYS_DEFAULT_UID = 1001
SYS_DEFAULT_GID = 1001

8、驗正
接下來重新啓動postfix和apache,進行發信測試後,如果日誌中的記錄類同以下項,則安裝成功
Apr 15 15:33:54 localhost postfix/pipe[11964]: 04B92147CE9: to=<[email protected]>, relay=maildrop, delay=0.16, delays=0.07/0.03/0/0.07, dsn=2.0.0, status=sent (delivered via maildrop service)


十四、安裝clamav-0.97.7

 最新的clamav-0.97.7需要zlib-1.2.2以上的版本的支持,因此需要事先安裝相應版本的zlib-devel;在RHEL5.8上,使用系統yum源安裝即可。

1、安裝clamav-0.97.7

 添加ClamAV運行所需的組和用戶:
 #groupadd clamav
 #useradd -g clamav -s /sbin/nologin -M clamav

 添加配合amavisd-new使用的用戶amavis
 #groupadd amavis
 #useradd -g amavis -s /sbin/nologin -M amavis

 #tar zxvf clamav-0.97.7.tar.gz
 #cd clamav-0.97.7
 #./configure --prefix=/usr/local/clamav --with-dbdir=/usr/local/clamav/share --sysconfdir=/etc/clamav
 #make
 #make check
 #make install

 3、配置Clam AntiVirus:

 編輯主配置文件:
 #vim /etc/clamav/clamd.conf

 註釋掉第八行的Example,如下:
 # Example

 找到如下行
 #LogFile /tmp/clamd.log
 #PidFile /var/run/clamd.pid
 LocalSocket /tmp/clamd.socket
 #DatabaseDirectory /var/lib/clamav
 #User clamav
 修改爲:
 LogFile /var/log/clamav/clamd.log
 PidFile /var/run/clamav/clamd.pid
 LocalSocket /var/run/clamav/clamd.socket
 DatabaseDirectory /usr/local/clamav/share
 User amavis

 啓用以下選項
 LogSyslog yes
 LogFacility LOG_MAIL
 LogVerbose yes
 StreamMaxLength 20M  

 說明:上面最後一個參數後面的數值應該與郵件服務器允許的最大附件值相一致


 編輯更新進程的配置文件
 #vim /etc/clamav/freshclam.conf

 註釋掉Example,如下:
 # Example

 找到如下行
 #DatabaseDirectory /var/lib/clamav
 #UpdateLogFile /var/log/freshclam.log
 PidFile /var/run/freshclam.pid
 分別修改爲:
 DatabaseDirectory /usr/local/clamav/share
 UpdateLogFile /var/log/clamav/freshclam.log
 PidFile /var/run/clamav/freshclam.pid

 啓用以下選項:
 DatabaseMirror db.XY.clamav.net  (這裏也可以把XY改成您的國家代碼來實現,比如,我們用cn來代替)
 LogSyslog yes
 LogFacility LOG_MAIL
 LogVerbose yes

 4、建立日誌所在的目錄、進程與socket所在的目錄,並讓它屬於clamav用戶:

 # mkdir -v /var/log/clamav
 # chown -R amavis.amavis /var/log/clamav
 # mkdir -v /var/run/clamav
 # chmod 700 /var/run/clamav
 # chown -R amavis.amavis /var/run/clamav

 建立freshlog的日誌文件
 #touch  /var/log/clamav/freshclam.log
 #chown  clamav.clamav  /var/log/clamav/freshclam.log

 5、配置crontab,讓Clam AntiVirus每小時檢測一次新的病毒庫:

 # crontab -e
 添加:
 37 * * * * /usr/local/clamav/bin/freshclam

 6、配置庫文件搜索路徑:

 # echo “/usr/local/clamav/lib” >> /etc/ls.so.conf
 # ldconfig -v

 7、配置clamav開機自動啓動

 # cp contrib/init/RedHat/clamd  /etc/rc.d/init.d/clamd
 # cp contrib/init/RedHat/clamav-milter  /etc/rc.d/init.d/clamav-milter
 # chkconfig --add clamd
 # chkconfig --add clamav-milter
 # chkconfig --level 2345 clamd on
 # chkconfig --level 2345 clamav-milter on

 編輯/etc/rc.d/init.d/clamd,將服務進程的路徑指向剛纔的安裝目錄
 #vi /etc/rc.d/init.d/clamd
 找到如下行
 progdir="/usr/local/sbin"
 修改爲:
 progdir="/usr/local/clamav/sbin"

 啓動clamd
 #service clamd start


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章