Fedora 9 mail 系統筆記
sendmail 設定
1. 設定sendmail 可以接收外部連線
修改 sendmail.mc
DAEMO_OPTIONS( `Port=smtp,Addr=0.0.0.0, Name=MTA’)dnl
建立新的 sendmail.cf 設定檔
m4 sendmail.mc > sendmail.cf
測式:
netstat -antp | grep :25 (確定sendmail是否有啟動監聽port-25)
tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 14012/sendmail: acc
[root@mail ~]# telnet localhost 25
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
220 mail.mis.dom ESMTP Sendmail 8.14.1/8.14.1; Thu, 29 Nov 2007 07:53:04 -0500
[root@mail ~]# telnet 192.0.1.149 25
Trying 192.0.1.149…
Connected to 192.0.1.149.
Escape character is ‘^]’.
220 mail.mis.dom ESMTP Sendmail 8.14.1/8.14.1; Thu, 29 Nov 2007 07:51:43 -0500
2. 設定可接收的郵件位址:
vi /etc/mail/local-host-names
mail.xxx.com.tw
xxx.com.tw
接收的郵件位址一行一個
3. 設定可收發,轉遞(relay)的郵件位址
vi /etc/mail/access
192.168.1.0 RELAY
設上內部網路的IP允許寄信
makemap hash access < access 製作出 hash 格式的資料庫
4. 設定smtp認證
安裝 cyrus-sasl-md5 cyrus-sasl-plain cyrus-sasl套件
修改之前的 /etc/mail/sendmail.mc
將下面兩行最前面的 dnl 拿掉
dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl
dnldefine(`confAUTH_MECHANISMS’, `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN’)dnl
重新產生sendmail.cf檔 : m4 sendmail.mc > sendmail.cf
重新啟動 sendmail 服務: service sendmail restart
利用telnet 測式smtp認證功能是否生效(要有出現 LOGIN PLAIN才算)
[root@mail cf]# telnet localhost 25
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
220 mail.mis.dom ESMTP Sendmail 8.14.1/8.14.1; Tue, 27 Nov 2007 18:16:54 -0500
ehlo localhost (輸入這一個指令)
250-mail.mis.dom Hello localhost.localdomain [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
250-DELIVERBY
250 HELP
5. 因為寄信給yahoo有時很難寄成功,設定讓寄給yahoo的信交給Hinet 轉寄
修改 vi /etc/mail/Mailertable
@yahoo.com.tw smtp:[168.95.4.211]
安裝MailScanner
官方網站 : http://www.mailscanner.info/
我是安裝版本 : MailScanner-4.69.9-3.rpm.tar.gz
1.安裝前準備: 需要有gcc ,rpm-build ,perl-MIME-tools 套件
利用yum 安裝
指令: yum install gcc rpm-build perl-MIME-tools
2. 解壓縮 tar zxvf MailScanner-4.69.9-3.rpm.tar.gz
3. 切換到 MailScanner-4.69.9-3 目錄
4. ./install.sh ( 開始安裝MailScanner ,需要一點時間)
安裝好 MailScanner 後 使用 sendmail 就不需特別設定
設定開機自動啟動MailScanner —> 指令 chkconfig MailScanner on ( 記得要把sendmail 設定開機不啟動)
安裝mail掃毒軟體 clamav
利用 yum install clamav 安裝即可
設定MailScanner 使用的掃描軟體 修改 /etc/MailScanner/MailScanner.conf
將 Virus Scanners = auto 改為 Virus Scanner = clamav
MailScanner中的白名單設定方法:
設定檔:/etc/MailScanner/rules/spam.whitelist.rules 針對你希望不被標示的範圍進行加註:
要使用白名單功能時請確定下面功能是否有開啟
Is Definitely Not Spam = %rules-dir%/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 |
安裝 myspam 廣告管理程式
需安裝 mysql php Smarty 等相關套件
用yum 安裝即可 –> yum -y install php mysql mysql-server php-mysql php-gd php-mbstring
Myspam程式下載點 : myspam
Smarty 程式下載 : http://www.smarty.net/ (我裝的版本是 Smarty-2.6.19.tar.gz)
安裝步驟:
1. 解壓縮myspam 程式 tar zxvf myspam.tgz
2. 將解開的目錄移動到 /var/www/html/ 我是把目錄改成 myspam
3. 將資料表db.sql (此檔案在/var/www/html/myspam/)匯入到 mysql
順如下
- 先切換目錄 cd /var/www/html/myspam/
- 進入mysql指令模式 –> mysql -u root -p (需輸入您的mysql root密碼即可進入)
- create database spam1; (建立一個資料庫spam1,分號算指令一部份喔)
- use spam1; (進入資料庫)
- . db.sql (匯入資料表)
- exit 離開
4. 解壓縮Smarty程式 tar zxvf Smarty-2.6.19.tar.gz
5.將解開的目錄移動到 /var/www 我是把目錄改成Smarty
6.修改 /var/www/html/myspam/web/config.php (依照自己情況修改)
/ database
$dbhost = ‘your_db_host’;
$dbuser =’your_db_user’;
$dbpass = ‘your_db_password’;
$dbname =’your_db_name’;
// item for each page
$pagesize = 15;
// smtp
$smtp_server = ”your_smtp_host”;
$smtp_port = 25;
// pop3
$pop3_server = ‘your_pop3_host’;
$pop3_port = 110;
// domain
$mydomain = ”your-domain’;
// URL
$spam_url = ‘http://your-domain;
// notspam path
$notspam_path = ‘/var/spool/myspam/notspam/’;
7. 修改 /var/www/html/myspam/web/index.php (依照自己情況修改)
require_once(‘/var/www/html/myspam/web/config.php’);
require_once(‘/var/www/Smarty/libs/Smarty.class.php’);
require_once(‘/var/www/html/myspam/web/lang.php’);
require_once(‘/var/www/html/myspam/web/sendmail.php’);
8. 利用procmail 處理 spam 編輯
檢查是否有安裝procmail 套件 rpm -qa | grep procmail
若沒有就請用yum 安裝 yum install procmail
修改 vi /etc/procmailrc (沒有此檔案自行新增即可)
內容如下 : ( 參考網站: http://www.laipi.net/index.php?job=category&seekname=3.com.tw)
LOGFILE=/var/log/procmail.log
MAILDIR=/var/mail
:0
* ^X-Spam-Status: Yes
{
:0
* ! ^X-MySPAM: YES
|/usr/bin/php -Cq /website/jlspam/web/index.php save_spam
}
:0 B
* ^X-Spam-Status: Yes
{
:0b
* ^X-MySPAM: YES
$DEFAULT
}
:0
* ^X-MySPAM: YES
$DEFAULT
再來就是啟動apache,看看myspam是否有登入畫面出現
可利用排程 每日執行 /var/www/html/web/send_notify.sh (記得先修改一下內容程式所在路徑)這樣可以通知USER 有哪些信被攔截
myspam結論 :
小弟使用上目前為止沒有出現大問題,可以有一個小問題還是存在
在廣告列表上的信件大小都是顯示為0,我不會修改,會改的朋友希望您能分享
安裝Mailwatch 管理程式
請參考小弟的另依篇文張 https://blog.pmail.idv.tw/?p=1056
本篇瀏覽人數: 2840