2006-10-16

FedoraCore4安裝postfix

FedoraCore4安裝postfix
分類:FedoraCore4安裝postfix
1.系統安裝
FedoraCore4
自動分割硬碟
選擇自訂安裝 要選擇的項目如下
網頁伺服器 郵件伺服器 PostgreSQL資料庫 MySQL資料庫 開發工具 其他的就看你要不要安裝囉
啟用防火牆,選擇=停用SLE <==很重要
開啟 25:tcp, 110,tcp, 10000:tcp
2.設定DNS == 加入主機名稱,如果是mail主機,加入 MX 紀錄
3.更改系統語系

為了往後用putty進行遠端維護的方便,所以建議更改語系。
(預設為UTF-8,建議改成BIG-5)
/etc/sysconfig/i18n

原內容大致為
LANG="zh_TW.UTF-8"
SUPPORTED="zh_TW.UTF-8:zh_TW:zh"
SYSFONT="latarcyrheb-sun16"

請改成
LANG="zh_TW.BIG-5"
SUPPORTED="zh_TW.BIG-5:zh_TW:zh"
SYSFONT="latarcyrheb-sun16"
4.安裝webmin

5.架設postfix
 檢查是否有安裝
 rpm -qa |grep postfix 如果沒有安裝放入第3片光碟
 mount /dev/cdrom /media/cdrom
 cd /media/cdrom/Fedora/RPMS/
 rpm -ivh postfix-2.*.rpm <==安裝postfix套件

 使用工具讓系統改用postfix
 檢查是否有安裝切換工具
 rpm -qa |grep system-switch-mail
 執行以下指令切換
system-switch-mail

(postfix的啟動-停止-重新啟動 的指令)
/etc/rc.d/init.d/postfix start
/etc/rc.d/init.d/postfix stop
/etc/rc.d/init.d/postfix restart

(讓postfix每次開機自動啟動的指令)
chkconfig postfix on

檢查並設定Poxtfix接受外部連線
telnet localhost 25
如果看到以下訊息表示已經內部連線25阜
220 xxx.xxx.xxx.tw ESMTP postfix

quit <==離開指令

telnet 192.168.1.1 25 <==輸入本機IP

如果還沒修改postfix設定檔會出現如下訊息
...
...
telnet:connect to address 192.168.1.1: Connection refused
被拒絕了.請開啟
 /etc/postfix/main.cf <==postfix的設定檔
如下修改

...
inet_interfaces = all

...

設定主機和網域名稱(/etc/postfix/main.cf)
myhostname = xxx.xxx.xxx.tw
mydestination = $myhostname, localhost.$mydomain, localhost <=要加入 vpec.com.tw

設定可轉遞郵件(relay)的位址
mynetworks = 192.168.1.1

安裝完預設值郵件存放目錄在 /var/spool/mail/ 格式為 mbox
重送佇列信件的間隔為 1000s 佇列信件的保留時間為 5天
如果要修改請到main.cf最底下加入一行

queue_run_delay = 5m <==5分鍾
maximal_queue_lifetime = 6d <==保留6天

如果要備份郵件伺服器檔案,請備份以下目錄
 /etc/postfix (/etc/mail <==sendmail)
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
如果要備份尚未收到電腦中的信件則要備份
/etc/spool/mail

重新啟動postfix應該就可以用[本機]收發信了

架設POP3/IMAP伺服器==讓使用者可以遠端收發信

檢查與安裝所需套件
rpm -qa | grep perl-DBI
perl-DBI-1.48-4 <=(以下有列出的為必須的套件名稱)在第一片

rpm -qa | grep mysql
mysql-4.1.11-2

rpm -qa | grep postgresql
postgresql-libs-8.0.3-1

rpm -qa | grep dovecot
dovecot-0.99.14-4.fc4 (在第三片)

如果有沒安裝的請如下操作
放入光碟
mount /media/cdrom
cd /media/cdrom/Fedora/RPMS
rpm -ivh 套件名稱.i386.rpm
cd (切換到根目錄)
eject (退片)

安裝好後,修改 /etc/dovecot.conf 檔
...
protocols = imap imaps pop3 pop3s
(如果要安裝webmail那麼一定要有imap這個設定值)
啟動和測試 pop3/imap

/etc/rc.d/init.d/dovecot start
chkconfig dovecot on <==開機啟動

telnet localhost 110 <==測試本機pop3的110阜

+OK dovecot ready <==服務已經啟動
quit <=離開

telnet localhost 143 <=測試本機imap的143阜
+OK dovecot ready <==服務已經啟動

接下來就可以測試用戶端的Outlook Express等郵件軟體來收發信了

限制與設定使用者郵件空間
切換到 /etc 用文書編輯器開啟 aliases 檔 加入
root:   postxxx <=常用的帳號
就可以收到系統發給root的訊息,也可以對root設限而不會被灌爆

編輯 /etc/fstab 檔(本人以設定"/"目錄的quota為例)
#This file is ........................details
LABEL=/1 / ext3 defaults, usrquota 1 1 <=加入 , usrquota 字串

記得~記得~~ 存檔後[[重新開機]]!!!!!

開機好了,一定要切換到要限制的分割區目錄下操作
本人的工作目錄是 /
cd /
touch aquota.user
quotacheck -uavmc <=按下Enter鍵執行(需要check的時間)
會出現
.........Old group file not found.
Usage will not be substracted.
done
........等的訊息,因為我們沒有設定群組的quota

執行下列指令對使用者編輯磁碟限制
edquota xxx <==帳號

Disk quotas for user xxx (uid xxx):
Filesystem  blocks  soft  hard  inodes  soft  hard
/dev/hda2  0   10240  10240  0  0  0
設為10M

 設定好可以用下列指令套用給所有使用者
cd /home
edquota -p xxx *

啟動磁碟空間限制
quotaon -avu

關閉限制
quotaoff -avu

設定每封信的上限==編輯main.cf 在最後面加上
message_size_limit = 10240000 <= 10M
重新啟動postfix設定值就生效囉

過濾垃圾郵件
檢查與安裝
rpm -qa | grep perl-Digest-SHA1 <=Enter
perl-Digest-SHA1-2.10-1 <=需要的模組(通通在第一片)
rpm -qa | grep perl-HTML-Tagest
perl-HTML-Tagest-3.04-1
rpm -qa | grep perl-HTML-Parser
perl-HTML-Parser-3.45-1
rpm -qa | grep perl-Digest-HMAC-1.01-14
perl-Digest-HMAC-1.01-14
rpm -qa | grep perl-Net-DNS
perl-Net-DNS-0.49-2
rpm -qa | grep perl-Time-HiRes
perl-Time-HiRes-1.651
rpm -qa | grep spamassassin
spamassassin-3.0.3-4.fc4

安裝好了就
/etc/rc.d/init.d/spamassassin start
chkconfig spamassassin on

設定Procmail呼叫SpamAssassin掃瞄垃圾郵件
製作Procmail的設定檔
cp /etc/mail/spamassassin/spamassassin-spamc.rc /etc/procmailrc

修改spamassassin的設定檔
/etc/mail/spamassassin/local.cf
.......
required_hits 5 <=預設到達5分就判定為垃圾信
.......
.......
rewrite_header Subject [-- SPAM --] <=預設為[SPAM]
加入以下設定
rewrite_subject    1
subject_tag      [-- SPAM --] <=若被判定為垃圾信會加入這個字串
ok_languages     en zh.big5 <=信任的信件內文編碼,要設定多種語言記得要用空白間隔開
score HTML_COMMENT_8BITS  0
score UPPERCASE_25_50    0
score UPPERCASE_50_75    0
score UPPERCASE_75_100   0

重新啟動spamassassin

設定postfix使用Procmail為MDA
編輯main.cf
.....
mailbox_command = /usr/bin/procmail -a "$EXTENSION" <=取消此行的#符號並修改
存檔後重新啟動postfix
執行
chmod 1777 /var/spool/mail <==更改儲存郵件目錄的權限讓postfix透過procmail寫入郵件
開始測試吧!!請別人寄一堆垃圾郵件給你吧!!

讓spamassassin自動學習提升判斷力
執行以下指令新增使用者
adduser spam <==學習判對垃圾信用帳號
adduwer notspam <==學習判斷非垃圾信帳號
chsh -s /sbin/nologin spam
chsh -s /sbin/nologin notspam
以上兩行指令設定spam和notspam兩個帳號部可以登入系統
並且只可以用本機收發信
然後請使用者把沒有被判斷為垃圾信的垃圾信寄到spam@xxx.xxx.xxx
把被誤判為垃圾信的郵件寄到notspam@xxx.xxx.xxx

執行以下指令讓系統定時自動學習
crontab -e <==會開啟vi編輯器,記得要用vi操作指令
輸入下列內容
0 1 * * * /usr/bin/sa-learn --showdots --spam --mbx /var/spool/mail/spam
0 1 * * * /usr/bin/sa-learn --showdots --ham --mbox /var/spool/mail/notspam
於是系統每天凌晨1點就會執行自動學習而且執行完畢會發一封mail給root

0 Comments:

張貼留言

<< Home