Sendmail + ESMTP

1.需安裝的套件 sendmail , m4 , malix , imap , cyrus-sasl-md5 , cyrus-sasl ,

  用#rpm qa | grep xx < - - - 所要查詢的套件名稱看有沒有安裝

 

2.設定/etc/mail/access檔案控制可否 Relay

  #預設值

  localhost.localdomain   RELAY

  localhost             RELAY

127.0.0.1                                                RELAY

  #加入要開啟的

  x.x.x.x              RELAY

  #檔掉的IP 

  x.x.x.x              DISCARD

  x.x.x.x              REJECT

設定好後存檔離開,並執行

#makemap hash /etc/mail/access < /etc/mail/access.db

這樣設定值才有效

 

3. Esmtp認證的改法

更改/etc/mail/sendmail.mc

vi找到這幾行:
dnl TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
dnl define(`confAUTH_MECHANISMS', `DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA') 
將他修改成底下這樣:前兩個設定將dnl拿掉,最後一個改成 0.0.0.0
TRUST_AUTH_MECH(`DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
define(`confAUTH_MECHANISMS', `DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')

最後用這個指令轉成sendmail.cf

#m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf

另一個將sendmail.mc 轉成 sendmail.cf的方法 用 sh Build …的方法

建議先被分好#cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.old 這再做

首先#cp /etc/mail/sendmail.mc /etc/mail/redhat.cf

再來#sh Build redhat.cf

最後#cp /etc/mail/redhat.cf /etc/mail/sendmail.cf

啟動sasl認證#/etc/rc.d/init.d/saslauthd start

如果你用的是Fedora1還要下列步驟

#cp /etc/pam.d/smtp.postfix /etc/pam.d/smtp

將認證的設定檔copy這樣才會生效,如果沒這樣做的話,系統會一直問你密碼,就算密碼是對的也會問歐

 

4.自動檔掉Open Relay的設定法

先要測試一下自己的server有沒有Open relay到網站http://www.ordb.org測試一下

修改方法因為這個網站是免費的所以可以直接連線去取得資料庫

修改的檔案 : /etc/mail/sendmail.mc

只要在MAILER 之前加入這一行
FEATURE(`dnsbl', `relays.ordb.org', `"Email blocked using ORDB.org - see <http://ORDB.org/lookup/?host="$&{client_addr}">"')

再用#m4/etc/mail/sendmail.mc > /etc/mail/sendmail.cf

重新啟動sendmail就可以了

#/etc/rc.d/init.d/sendmail restart

 

5.限制每封郵件的上限

修改的檔案/etc/mail/sendmail.cf

找到O MaxMessageSize=1000000

預設是1000000bytes(1Mbytes)