基于Postfix帶有病毒郵件過度的webmail
部署線上郵件伺服器的必須準備的步驟:
1、必有一個合法的域名,并且對域名做好MX的記錄解析,該記錄解析到将要部署的郵件伺服器的IP
2、郵件伺服器的時間必須正确。
如果是本地臨時的郵件伺服器的部署,僅僅需要綁定一個FQDN主機名,把主機名和IP綁定在hosts檔案
10.1.1.21mail.upl.com www.upl.com
一、把postfix的基本接發郵件功能部署好
# yum install postfix -y
# vim /etc/postfix/main.cf
myhostname = mail.upl.com
mydomain = upl.com
myorigin = $mydomain
inet_interfaces = all <---把原來的localhost注釋掉
mydestination = $myhostname, localhost.$mydomain, localhost,$mydomain
mynetworks = 127.0.0.0/8,10.1.1.0/24,172.16.0.0/16
二、安裝防毒軟體
1、建立相關身份
# groupadd -g 108 clamav
# useradd -g clamav -u 108 clamav
2、編譯安裝
# tar xvf clamav-0.97.6.tar.gz -C /usr/src
# cd /usr/src/clamav-0.97.6
# ./configure
# make -j2 && make install
3、配置
1)配置更新防毒軟體的配置檔案
shell> vim /usr/local/etc/freshclam.conf
# Example <---删除或者注釋掉
DatabaseDirectory /var/lib/clamav
DatabaseOwner clamav <---病毒庫相關檔案的擁有者,肯定是和防毒軟體的運作身份一樣
DatabaseMirror db.cn.clamav.net
DatabaseMirror database.clamav.net
Checks 24
NotifyClamd /usr/local/etc/clamd.conf
# mkdir -p /var/lib/clamav
# chown clamav:clamav /var/lib/clamav/
把筆記提供過去某個版本的病毒庫解壓到病毒庫目錄,否則全新更新很慢
# tar xvf clamav-db.tar -C /var/lib/clamav/
更新
# freshclam
2) 配置主配置檔案
shell> vim /usr/local/etc/clamd.conf
#Example
LogFile /tmp/clamd.log
PidFile /var/run/clamd.pid
LocalSocket /tmp/clamd.socket
User clamav
把筆記提供的啟動腳本拷貝到相應目錄
# cp clamd /etc/rc.d/init.d/
# chmod 755 /etc/rc.d/init.d/clamd
啟動防毒軟體
# service clamd start
# ls /tmp/clamd.socket
/tmp/clamd.socket <---如有,就代表啟動成功
隻要病毒庫更新完畢,可以測試殺毒功能
# clamscan /usr/src/clamav-0.97.6/test/ 僅僅掃描
# clamscan --remove=yes /usr/src/clamav-0.97.6/test/ 删除感染了病毒的檔案
三、把防毒軟體和postfix進行整合
需要安裝一個插件clamstmp
# tar xvf clamsmtp-1.10.tar.gz -C /usr/src
# cd /usr/src/clamsmtp-1.10/
# ./configure && make -j 2 && make install
# cp scripts/clamsmtpd.sh /etc/rc.d/init.d/clamstmpd
# chmod 755 !$
# cp scripts/virus_action.sh /usr/local/bin/virus_action.sh
# chmod 775 /usr/local/bin/virus_action.sh
# cp doc/clamsmtpd.conf /usr/local/etc/
編輯插件的配置
# vim /usr/local/etc/clamsmtpd.conf
OutAddress: 10026 <----把防毒軟體過濾後,沒有問題的郵件發送本機10026端口
Listen: 0.0.0.0:10025
ClamAddress: /tmp/clamd.socket
Header: X-Virus-Scanned: ClamAV using ClamSMTP
Action: drop
Quarantine: on
User: clamav
VirusAction: /usr/local/bin/virus_action.sh
# vim /usr/local/bin/virus_action.sh
file="/tmp/virus.log"
dir="/tmp/quarantine/"
# mkdir -p /tmp/quarantine/
# chown clamav:clamav /tmp/quarantine/
# /etc/rc.d/init.d/clamstmpd start <---沒有傳回報錯就對了
# lsof -i:10025
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
clamsmtpd 32275 clamav 3u IPv4 98568 0t0 TCP *:10025 (LISTEN)
以上的配置隻是把插件和clamav防毒軟體整合了,還必須把它和postfix整合
# vim /etc/postfix/master.cf
。。。。在配置檔案最後添加:讓postfix監聽10026端口.....
scan unix - - n - 16 smtp
-o smtp_send_xforward_command=yes
-o smtp_enforce_tls=no
127.0.0.1:10026 inet n - n - 16 smtpd
-o content_filter=
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
-o smtpd_helo_restrictions=
-o smtpd_client_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks_style=host
-o smtpd_authorized_xforward_hosts=127.0.0.0/8
content_filter = scan:[127.0.0.1]:10025 <---增加内容過濾的配置
總結:
mail郵件 ---> 25:Postfix ---> 10025:clamstmpd ---> /tmp/clamd.socket 防毒軟體來掃描 ----> 10026:Postfix
重新開機postfix,讓配置生效
# service postfix restart
注意:
注意開機之後服務啟動順序:
# service clamstmpd start
# service postfix start
測試:
發送一封本地普通郵件
發送一封本地帶有病毒的郵件
# mutt -f /var/mail/root <--用root身份發送郵件
發送遠端郵件
四、給postfix安裝一個webmail界面
# yum install perl-Text-Iconv perl-suidperl perl-CGI -y
# useradd -s /sbin/nologin tchung
# rpm -ivh openwebmail-2.53-1.i386.rpm openwebmail-data-2.53-1.i386.rpm
初始化
# /var/www/cgi-bin/openwebmail/openwebmail-tool.pl --init
如果提示錯誤,要求修改某個檔案,按照提示去修改
Welcome to the OpenWebMail!
Send the site report?(Y/n) n 不需要發送報告
啟動apache
# service httpd restart
登入
http://10.1.1.21:8081/webmail 隻能使用普通帳号登入
不能root管理
# passwd tom
本文轉自crazy_charles 51CTO部落格,原文連結:http://blog.51cto.com/douya/1243779,如需轉載請自行聯系原作者