国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

postfix 的 sasl 支持

2024-07-21 02:36:33
字體:
供稿:網(wǎng)友

  假如您之前有看過小弟寫過關(guān)于mandrake 8.1支持sasl的文章您大概會發(fā)現(xiàn)在Mandrake 8.2中好象不太能夠執(zhí)行了!我想我再一次的把這篇文章做個整理!希望可以幫助大家可以做好防止服務(wù)器被利用轉(zhuǎn)寄的困擾!關(guān)于sasl 在電子郵件運行的初期,大家并沒有想到電子郵件寄送上的安全考量!smtp的認證機也一直沒有被建立,大家只可以使用封鎖的方式!而 cyrus-sasl 的出現(xiàn)提供了一個更大的 "彈性" 的選擇!也就是使用密碼認證 , 在這之前我們必須說.sasl并不一定是一個安全的.而是提供更大的彈性!希望大家認清,功能或服務(wù)的開啟是等于是開啟一個危險的可能!你假如看過postfix的說明文件,第一個就會告欣你.你使用的東西并不會加強你的安全性.也希望大家可以有這樣的認知.假如您只是在內(nèi)部使用,而沒有需要開啟對外的服務(wù),建議還是使用郵件服務(wù)器的安全防護功能就好了( 例如關(guān)閉relay )系統(tǒng)環(huán)境 Mandrake 9.0 相關(guān)套件 postfix cryus-sasl您可以使用控制臺中的安裝功能或者使用urpmi都可以套件安裝小弟就不多個說明了.您可以參考下圖安裝.
   postfix 的 sasl 支持
  在上列的套件中包含了一些plugin及sasl系統(tǒng),
  您可以依自己的需求進行安裝!
  
  如何設(shè)定sasl及postfix,
  我想在 上一節(jié)中我們已經(jīng)介紹過了postfix的設(shè)定了,
  這個部份我們也不再多做講解.
  
  首先我們在/etc/postfix/main.cf中加入幾行
  基本上范例如下
  # server
  smtpd_sasl_auth_enable = yes
  smtpd_sasl_local_domain = $myhostname
  smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,check_relay_domains
  #smtp_sasl_passWord_maps=hash:/etc/postfix/sasl_passwd
  smtpd_sasl_security_options = noanonymous
  # client
  smtp_sasl_auth_enable = yes
  
  我們一個一個來解釋一下
  smtpd_sasl_auth_enable = yes
  這是激活sasl支持.假如您改成 no sasl功能也會停 止運作!
  smtpd_sasl_local_domain = $myhostname
  指 sasl 預(yù)設(shè) domain ,假如你不使用sasldb方式治理密碼的話,
  請設(shè)定 $myhostname ,(主要因為sasldb治理方式,自行可以設(shè)定. )
  
  smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, check_relay_domains
  指使用認證的設(shè)定(請保持上列為一行 , 沒有斷行)
  
  a.permit_mynetworks 答應(yīng) mynetworks (postfix設(shè)定.)
  b.permit_sasl_authenticated 答應(yīng)具有 sasl 認證設(shè)定( sasldb,....)
  c.check_relay_domains 確認relay的區(qū)域 (postfix設(shè)定.)
  
  smtpd_sasl_security_options = noanonymous
  指 sasl 安全選項
  i. noanonymous 這里是答應(yīng)任何非匿名認證方法。
  ii. noplaintext 指不使用 PLAIN 和 LOGIN 方式
  iii. nodictionary
  ix. noactive
  任何一項不通過信件都可能造成信件無法送出.
  
  
  另外二個
  broken_sasl_auth_clients = yes
  #client
  smtp_sasl_auth_enable = yes
  
  這二個支持client端的服務(wù)
  主要是針對客戶端的連結(jié)軟件個區(qū)隔,例如 Outlook4大概很少人用了吧.
  所以 broken_sasl_auth_clients 就當沒看到吧^ ^
  
  接下來我們可以試著執(zhí)行postfix 確認
  #
  
  # postfix check
  #postfix reload
  
  假如沒有錯誤訊息您的設(shè)定 就算成功了!
  接下來我們設(shè)定sasl的認證項目
  
  修改 /usr/lib/sasl/smtpd.conf
  # vi /usr/lib/sasl/smtpd.conf
  
  看起來像這樣:
  pwcheck_method:sasldb
  
  
  這是指定密碼認證方式,
  (主要分成四種 pam,shadow,sasldb,pwcheck)
  
  這一行設(shè)定完成后,這樣您的發(fā)信服務(wù)器的
  基本認證功能大至上就完了了哦.
  附注:
  密碼認證方式.
  1. pam :
  使用系統(tǒng)的pam來做認證,
  
  以下為舊的方式:(參考一下就好了)
  
  預(yù)設(shè)的pam 認證方式
  /usr/lib/sasl/smtp.conf
  #%PAM-1.0
  auth required /lib/security/pam_stack.so service=system-auth
  account required /lib/security/pam_stack.so service=system-auth
  也即和/etc/pam.d/pop文件的內(nèi)容是一致的。

  
  修改/etc/shadow文件權(quán)限
  因為PAM最終要去讀取/etc/shadow文件的內(nèi)容來進行用戶認證,但是/etc/shadow文件
  權(quán)限是設(shè)置為只有root用戶可以讀寫,而我們的postfix是運行在postfix用戶權(quán)限之下,所以我們要合理的設(shè)置/etc/shadow文件權(quán)限,以便讓pam可以讀取其內(nèi)容。
  執(zhí)行以下命令,讓root組也可以讀取shadow:
  方式1 : 把postfix加入root群組
  # chmod 640 /etc/shadow
  # usermod -G root postfix
  方式2 : 給他設(shè) 644
  
  目前pam已經(jīng)交由saslauthd來處理所以大至上不需要再改成644
  注重: pam 認證不支持 CRAM-md5 只支持 LOGIN DIGEST-MD5 PLAIN
  這大概是pam本身的限制 !
  
  
  2. shadow:
  使用系統(tǒng)的影子文件來進行認證,
  因為要讀取/etc/shadow檔案(影子檔),就必須要可以讀取.
  而檔限就必須要修改,建議修改為 644
  
  3. pwcheck:
  pwcheck 其實是和shadow認證是相同的,
  都是要讀取影子檔shadow,但是pwcheck的想法,
  不需要去修改影子檔shadow 的權(quán)限.想法是:
  在開機時就把影子文件中密碼讀出,所以您就必須在開機的設(shè)定中加入一行
  #vi /etc/rc.local
  
  在最后加上這一行
  /usr/sbin/pwcheck
  這樣您就不需要修改影子檔的權(quán)限了.
  
  4.sasldb:
  使用sasl資料庫存放使用者帳號.
  
  一般建議使用 sasldb來設(shè)定.
  接下來我們來討論如何存取sasldb的數(shù)據(jù)庫.
  在安裝好您的cyrus-sasl之后,程序提供了二個語法
  
  1.sasldblistusers (列出sasl使用者及密碼設(shè)定)
  2.saslpasswd (設(shè)定使用者密碼)
  小弟不針對語法進行說明,只進行實例操作.
  請自行參照man
  
  我們先試著設(shè)定一個帳號
  新增語法
  #saslpasswd -a smtpd -c [帳號]
  新增一個帳號為test
  #saslpasswd -a smtpd -c test
  Password:[輸入密碼 test]
  Again (for verification): [再輸入一次 密碼 test]
  
  
  這樣就完成了一個新增使用者的動作了,
  帳號為 : test
  密碼為 : test
  
  再來我們試著用 sasldblistusers 查看使用者是否有新增.
  
  #sasldblistusers
  user: test realm: www.php5.idv.tw mech: PLAIN
  user: test realm: www.php5.idv.tw mech: CRAM-MD5
  user: test realm: www.php5.idv.tw mech: DIGEST-MD5
  
  列出了三個都是 test 帳號 , 這三個是密碼格式.
  為什么有三個呢 ? 這要看您所安裝的plugin而定,
  libsasl7-plug-crammd5-1.5.27-2.1mdk.i586.rpm
  libsasl7-plug-digestmd5-1.5.27-2.1mdk.i586.rpm
  libsasl7-plug-plain-1.5.27-2.1mdk.i586.rpm
  * Mandrake 8.2之后的變革
  重點來了!!!!!!
  我想大家一直很不解的是從前8.1玩到這里重啟postfix就會運作了為什么8.2之后就不行了呢!
  不管如何認證都不會通過!
  
  在8.2之后的Postfix 做了一個改變在 master.cf 他使用了 software chroot 來增加系統(tǒng)的安全性!
  刻意的讓 mail server在運作時和檔案系統(tǒng)分開. 使用saslauthd來中介取得認證!
  而造成我們所設(shè)定的sasldb無法存在正確路徑!
  解決方法:
  1.關(guān)閉software chroot
  2.把相關(guān)檔案copy到目錄中
  
  我想二個方法各有益斃
  解法一: 修改 /etc/postfix/master.cf 關(guān)閉software chroot
  范例如下:
  
  # ==========================================================================
  # service type PRivate unpriv chroot wakeup maXProc command + args
  # (yes) (yes) (yes) (never) (50)
  # ==========================================================================
  smtp inet n - n - - smtpd
  #smtps  inet n - n - - smtpd
  # -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
  #submission inet n - n - - smtpd
  # -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
  #628  inet n - y - - qmqpd
  pickup fifo n - y 60 1 pickup
  cleanup unix n - y - 0 cleanup
  #qmgr  fifo n - y 300 1 qmgr
  qmgr fifo n - y 300 1 nqmgr
  #tlsmgr  fifo - - y 300 1 tlsmgr
  rewrite unix - - y - - trivial-rewrite
  bounce unix - - y - 0 bounce
  defer unix - - y - 0 bounce
  flush unix n - y 1000?
0 flush
  smtp unix - - y - - smtp
  showq unix n - y - - showq
  error unix - - y - - error
  local  unix - n n - - local
  virtual unix - n y - - virtual
  lmtp unix - - y - - lmtp
  #
  # Interfaces to non-Postfix software. Be sure to examin

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 阜新市| 怀远县| 溧水县| 临沧市| 阿拉尔市| 吉水县| 永兴县| 融水| 吉安县| 苍山县| 峨边| 大余县| 陵川县| 万山特区| 繁昌县| 郑州市| 昂仁县| 西青区| 辽阳县| 房产| 格尔木市| 阿克苏市| 垫江县| 彭泽县| 读书| 红原县| 栖霞市| 龙游县| 怀柔区| 崇州市| 体育| 新宁县| 屯留县| 那曲县| 瑞金市| 奉化市| 松溪县| 乌海市| 新河县| 兰州市| 九江县|