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)