失落的紀錄

2010-05-15

SlackWare-13-SendMail + Cyrus SASL +TLS

分類: Llinux,SendMail — 番茄 @ 12:57

啟動 Cyrus SASL
1.設定開機時啟動Cyrus SASL

# chmod 755  /etc/rc.d/rc.saslauthd

 


2.建立 sendmail 與 cyrus SASL 使用的簡易設定檔

# echo  'pwcheck_method: saslauthd' > /etc/sasl2/Sendmail.conf

sendmail 會使用 SASL 這個函式庫裡面,
在 /etc/sasl2/Sendmail.conf 這個檔案的設定做為
他預設使用 SASL 的參數檔案,那個 Sendmail 的 S 是大寫,
請不要寫錯了!

 

3.檢驗 saslauthd 這支程式是否可行

# testsaslauthd -u userID -p 'yours.passwd'

若顯示

 0: OK "Success."

那麼就是成功了

 

4.設定 local-host-names 檔

# vi /etc/mail/local-host-names
abc.net
mail.abc.net
設定要收信的網域名稱

 

5.編輯 /etc/resolv.conf

Search abc.net(輸入您的網域)
nameserver 1.2.3.4(輸入名稱伺服器的IP位址)

 

6.開啟pop3

# vi /etc/inetd.conf
 
將pop3前面的 # 號拿
# pop3    stream    tcp    nowait    root    /usr/sbin/tcpd    /usr/sbin/popa3d
變成
pop3    stream    tcp    nowait    root    /usr/sbin/tcpd    /usr/sbin/popa3d

7.產生 SlackWare Linux 13 SendMail使用的認證檔

# openssl genrsa 1024 > smtp.key.pem
# openssl req  -new -key smtp.key.pem > newreq.csr
You are about  to be asked to enter information that will be incorporated
into your  certificate request.
What you are  about to enter is what is called a Distinguished Name or a DN.
There are  quite a few fields but you can leave some blank
For some  fields there will be a default value,
If you enter  '.', the field will be left blank.
-----
Country Name  (2 letter code) [AU]:TW(輸入國家名稱-簡稱)
State or  Province Name (full name) [Some-State]:Taiwan(輸入國家名稱-全名)
Locality Name  (eg, city) []:Kaohsiung(輸入城市名稱)
Organization  Name (eg, company) [Internet Widgits Pty Ltd]:TEST CO LTD(輸入公司名稱)
Organizational  Unit Name (eg, section) []:PD(輸入公司類型)
Common Name  (eg, YOUR name) []:abc.net(輸入您的mail的網域名稱,就是@後面的部分)
Email Address  []:abc@yahoo.com.tw(輸入您的E-mail)
Please enter  the following 'extra' attributes
to be sent  with your certificate request
A challenge  password []:123456(輸入密碼)
An optional company  name []:123456(再輸入一次密碼)

將smtp.key.pem複製到 /etc/mail/certs/ 內。

 

8.到 CAcert 產生 smtp.cert.pem
要使用 CAcert 產生 smtp.cert.pem檔,在 CAcert 必須要有一個帳號,
CAcert帳號申請方式請式
登入 CAcert 後,進入會員專區
到 [服務器證書] ->[新建],會出現一個框,將剛剛產生的 newreq.crs 內容貼在此框。
sendmail-01
將內容貼在此框後,按下[提交]

 

sendmail-02.png
確認一下後,按下[提交]

sendmail-03.png
上圖為[服務器認證書],將此內容複製下來,存成 smtp.cert.pem,
然後複製到 /etc/mail/certs/ 內

這個認證書也會發一封通知信到您的信箱。
PS.此認證書有效期限只有六個月,到期候必須重新申請

接下來,要下載[根認證書]以及[已失效的認證書列表]這兩個檔案
進入CAcert的首頁,點擊右邊的ROOT Certificate選項,會出現如下畫面:
sendmail-04.png
將紅色框起來的部分,下載下來,其中
CRL的檔名為revoke.cr,不用改檔名。
Root Certificate (PEM Format) 的檔名為 root.crt 請改成 CA.cert.pem
然後將這兩個檔案,複製到 /etc/mail/certs/ 內

接下來設定權限

# chmod -R  700 /etc/mail/certs
# chown -R  root:sys /etc/mail/certs

 

9.編輯sendmail-slackware-tls-sasl.mc文件

# vi /usr/share/sendmail/cf/cf/sendmail-slackware-tls-sasl.mc
在最後面加入下列幾行
define(`confCRL',  `/etc/mail/certs/revoke.crl')
define(`confCONNECTION_RATE_THROTTLE',  `50')
define(`confMAX_DAEMON_CHILDREN',`100')

confCONNECTION_RATE_THROTTLE:每一秒伺服器可以接收到的連線數,
預設情況下,sendmail 並不限制連線數,假如限度已設定,而且達到了,將會延遲接續的連線。
 
confMAX_DAEMON_CHILDREN :伺服器可以衍生之子程序的最大數量,預設情況下,
sendmail並不限定子程序的數量,假如一個限度已經設定而且達到了,將會延遲接續的連線。

 

10.將MC 檔編輯成 CF,然後放到 /etc/mail 資料夾內

# cd /usr/share/sendmail/cf/cf/
# sh Build sendmail-slackware-tls-sasl.mc
# mv sendmail-slackware-tls-sasl.cf  /etc/mail/ sendmail.cf

 

11.編輯 etc/rc.d/rc.sendmail

找到
echo "Starting sendmail MTA daemon: /usr/sbin/sendmail -L sm-mta -bd -q25m"
/usr/sbin/sendmail -L sm-mta -bd -q25m
 
改成
echo "Starting sendmail MTA daemon: /usr/sbin/sendmail -L sm-mta -bd -q25m -O LogLevel=16"
/usr/sbin/sendmail -L sm-mta -bd -q25m -O LogLevel=16

改好後存檔

12.重新啟動 SendMail

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

==========================================
其他:

增加 mail 的使用者
# useradd -g 初始群組 -m -s /sbin/nologin 使用者

參考文件:http://www.slackwiki.com/Sendmail_TLS_SASL_SMTP-AUTH

無迴響

No comments yet.

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Powered by WordPress