2011年5月24日 星期二

CentOS 5.3 Mail建置流程1_Postfix+dovect+Mailscanner+Clamav+spamassassin

"更改預設開機run level
vi /etc/inittab
id:5:initdefault: 改成---> id:3:initdefault:
開機直接進入Full multi-user mode(完整含有網路功能的純文字模式)


SSH基本設定
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak #備份設定檔
vi /etc/ssh/sshd_config
AllowUsers sysadm
在檔案最後面加上這一行,這樣就只有sysadm可以使用ssh連線了
若要設定多人,就用空格隔開:AllowUsers sysadmsysadm2
/etc/rc.d/init.d/sshd restart(重新讀取ssh設定檔)

修改IP、FQDN
查看IP:ifconfig
修改IP:/etc/sysconfig/network-scripts/ifcfg-eth0
FQDN 設定:/etc/sysconfig/network
DNS 設定: /etc/resolv.conf
重新啟動網卡:/etc/rc.d/init.d/network restart
ping:ping -c 5 tw.yahoo.com.tw
traceroute:traceroute tw.yahoo.com.tw

關閉SELinux
vi /etc/sysconfig/selinux
SELINUX=enforcing 改成---> SELINUX=disabled

關閉、啟動基本服務
執行ntsysv指令,只留下以下服務:
acpid anacron cpuspeed crond network sshd syslog yum-updatesd
service XXX start #啟動服務
service XXX stop #停止服務
chkconfig XXX on #開機啟動
chkconfig XXX off #開機不啟動

安裝RPMforge
rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/RPMS.dag/rpmforge-release-0.3.6-1.el5.rf.i386.rpm
RPMforge是Dag, Dries和其他的打包者合作的套件庫,提供CentOS超過4000種以上的套件

更新套件
yum -y update

網路校時
yum -y install ntp #安裝NTP
/usr/sbin/ntpdate tock.stdtime.gov.tw #執行網路校時針對tock.stdtime.gov.tw
/usr/sbin/hwclock -w #將時間寫入BIOS
vi /etc/crontab
10 5 * * * root /usr/sbin/ntpdate tock.stdtime.gov.tw && /sbin/hwclock –w #排程自動校時每天5:10校時

RPM基本指令
安裝:rpm -ivh xxx
移除:rpm -e xxx
升級:rpm -Uvh xxx
查詢:rpm -qa | grep xxx

安裝Postfix

1.移除sendmail安裝postfix
/etc/init.d/sendmail stop #停用sendmail
yum install postfix #安裝postfix
rpm -e sendmail #移除sendmail
service postfix start #啟動postfix服務

2. postfix設定
版本: postfix- 2.3.3 -2.1.el5_2
設定檔位置 /etc/postfix/main.cf
設定 postfix 可接收外部連線
vi /etc/postfix/main.cf
將inet_interfaces = all 這一行#號拿掉
將inet_interfaces = localhost 這行前面加上#號註解
mydomain = no-ip.org
myhostname = pororo.no-ip.org
service postfix restart #重新啟動postfix服務
測試連線
[root@mail2 postfix]# telnet 192.168.1.1 25
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
220 pororo.no-ip.org ESMTP Postfix

3. 設定postfix SMTP 驗證
安裝 cyrus-sasl-md5 cyrus-sasl-plain cyrus-sasl 套件
yum install cyrus-sasl-md5 cyrus-sasl-plain cyrus-sasl
vi /etc/postfix/main.cf #加入下面設定
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
chkconfig saslauthd on #設定開機啟動
service saslauthd restart #啟動saslauthd服務
利用telnet 測式smtp認證功能是否生效(要有出現LOGIN PLAIN才算)
[root@mail2 postfix]# telnet 192.168.1.1 25
Trying 192.168.1.1...
Connected to 192.168.1.1.
Escape character is '^]'.
220 pororo.no-ip.org ESMTP Postfix
ehlo localhost
250-mail2.pmail.idv.tw
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

安裝dovecot pop3服務
yum install dovecot #安裝dovecot
vi /etc/dovecot.conf
protocols = imap imaps pop3 pop3s 將#註解拿掉
設定啟動 dovecot 服務,並設定開機自動啟動
chkconfig dovecot on
service dovecot start

安裝MailScanner
官方網站 : http://www.mailscanner.info/
安裝版本 : Mailscanner-4.77.10-1
1. yum install gcc rpm-build perl-MIME-tools #安裝必要套件

2. wget http://www.mailscanner.info/files/4/rpm/MailScanner-4.77.10-1.rpm.tar.gz

3. tar -zxvf MailScanner-4.77.10-1.rpm.tar.gz #解壓縮

4. cd MailScanner-4.77.10-1 #切換至該目錄下

5. ./install.sh #安裝需要一點時間,安裝好後使用sendmail不需特別設定,以下為搭配postfix設定
service postfix stop #停用postfix
chkconfig postfix off # postfix設定開機不啟動
chkconfig MailScanner on #設定開機啟動(MailScanner會自動呼叫postfix Spamassassin&clamav)
service MailScanner start #啟用MailScanner

6. MailScanner和postfix搭配使用時所需的設定:
vi /etc/postfix/main.cf
header_checks = regexp:/etc/postfix/header_checks 將#註解拿掉
vi /etc/postfix/header_checks
/^Received:/ HOLD #加上這一行
這是為了讓Postfix收進來的mail 先儲存在某一個Directory裡面,等待MailScanner 來進行Scan
vi /etc/MailScanner/MailScanner.conf如下:
Run As User = postfix #設定執行postfix 的使用者名稱
Run As Group = postfix #設定執行postfix 的群組名稱
Incoming Queue Dir = /var/spool/postfix/hold #內送郵件的佇列目錄,設定為postfix目前的佇列目錄下的hold目錄
Outgoing Queue Dir = /var/spool/postfix/incoming #外送郵件的佇列目錄,設定為postfix目前的佇列目錄下的incoming目錄
MTA = postfix #設定mailscanner 和 postfix 搭配使用

ps:可利用下面這一串指令查詢
postconf|grep -E 'mail_owner|setgid_group|queue_directory' #執行這一段指令
mail_owner = postfix --->這是執行postfix 的使用者名稱
queue_directory = /var/spool/postfix --->這是postfix的佇列目錄
setgid_group = postdrop --->這是執行postfix的群組名稱

修改權限:
chown postfix.postdrop /var/spool/MailScanner/incoming
chown postfix.postdrop /var/spool/MailScanner/quarantine

註:我在安裝完MailScanner檢視一下Maillog都會出下以下錯誤訊息
MailScanner[2248]: Could not create Processing Attempts Database '/var/spool/MailScanner/incoming/Processing.db'
解決方法: chown postfix.postfix Processing.db

安裝Clamav
套件可以到以下網站來下載 http://packages.sw.be/clamav/
安裝版本clamav-0.95.2-4
1.下載安裝套件
wget http://packages.sw.be/clamav/clamav-0.95.2-4.el5.rf.i386.rpm
wget http://packages.sw.be/clamav/clamav-db-0.95.2-4.el5.rf.i386.rpm
wget http://packages.sw.be/clamav/clamav-devel-0.95.2-4.el5.rf.i386.rpm
wget http://packages.sw.be/clamav/clamd-0.95.2-4.el5.rf.i386.rpm
如果你是使用sendmail的話要多下載clamav-milter <= for sendmail only此套件如果使用postfix就只要下載上面4個rpm就可以了

2.下載完後先將所有舊的clamav移除
yum remove clamav-* #移除,如果先前有安裝舊版本
rpm -ivh clam*.rpm #安裝
freshclam  #更新病毒碼
service clamd start  #啟動服務(有搭配MailScanner就不需要做這一步驟)

3. 設定MailScanner使用的掃毒軟體 vi /etc/MailScanner/MailScanner.conf
將Virus Scanners = auto改為 Virus Scanners = clamav

4. 排程每天0,12點更新病毒碼
vi /etc/crontab
0 0,12 * * * root /usr/bin/freshclam

5. 測試,EICAR病毒測試檔http://tw.trendmicro.com/tw/support/virus-primer/eicar-test-files/

過濾廣告信軟體spamassassin
1.安裝spamassassin
yum install spamassassin
service spamassassin start #啟動服務

2. 修改MailScanner設定檔
vi /etc/MailScanner/MailScanner.conf
Use SpamAssassin = yes #預設是YES 若不搭配spamassassin使用改為no
Required SpamAssassin Score = 6 #超過6等級就視為廣告信,當然可以依照使用者自已設定啦
High SpamAssassin Score = 10 #超過10分列為高等級廣告信
SpamAssassin Auto Whitelist = yes #可以測量從不同位址發出的廣告信及非廣告信的比率如果寄信位的信件大多不為廣告信,系統會自動的增加位址至它本身擁有的非廣告信清單(whitelist)
SpamAssassin Timeout = 75 #處理的郵件的最大等待時間(秒)
Spam Score Character = * #設定分數用*號表示,預設是用s,要如何表示當然由自已設定囉
修改主旨設定(如果被判定為spam時會在信件主旨加上特註記)
Spam Modify Subject = start #no就是不修改主旨
Spam Subject Text = {Spam?} #可以自行修改想要的註記
High Scoring Spam Modify Subject = start
High Scoring Spam Subject Text = {Spam?} #如果被判定為病毒信時會在信件主旨加上特註記)
Virus Modify Subject = start #no就是不修改主旨
Virus Subject Text = {Virus?} #可以自行修改想要的註記
設定spamassass 狀態目錄
SpamAssassin User State Dir = /var/spool/MailScanner/spamassassin (將#取消)
SpamAssassin User State Dir = (加上#)

3.建立目錄
mkdir /var/spool/MailScanner/spamassassin
chown postfix.postdrop spamassassin #修改此目錄權限
MailScanner中的白名單設定方法:
用白名單功能時請請檢查MailScanner.conf 中的白名單設定是否有開啟喔
vi /etc/MailScanner/MailScanner.conf
Is Definitely Not Spam = %rules-dir%/spam.whitelist.rules
vi /etc/MailScanner/rules/spam.whitelist.rules針對你希望不被標示的範圍進行加註
常用語法:
對象:
From: 針對信件的寄件者進行比對
To: 針對信件的收件者進行比對
FromOrTo: 針對寄件者或收件者進行比對
FromAndTo: 針對寄件者及收件者共同進行比對
比對的樣本
user@sub.domain.com 單一的郵件位址
user@* 單一帳號(不限定領域)
*@*.domain.com domain.com下轄 subdomin下的任何帳號
*@donain.com 特定 domain.com 的任何帳號
192.168. SMTP client IP 範圍 192.168.0.0/16
/^192.168.1[4567]./ SMTP client IP 範圍 192.168.14~17
範例
希望今天所有來自 *@*.mlc.edu.tw 及 *@mlc.edu.tw 的信件都不被標示為spam
值為yes表示不會被標記為spam
From: *@*.mlc.edu.tw yes
From: *@mlc.edu.tw yes

- 已使用 Google 工具列寄出"

沒有留言:

張貼留言