目前分類:電腦技術 (8)

瀏覽方式: 標題列表 簡短摘要

這陣子為了提升自架的郵件伺服器的驗證機制,讓刁鑽的gmail可以放行,

以及讓信件不被丟到垃圾信匣中,花了不少的時間來研究測試。後面就把一些自行發現的細節整理看看。

1. postmaster:

由於客戶設定的信箱帳號密碼太過簡單,被駭客猜到了,所以就在一個晚上從這個信箱伺服器寄出了大量的垃圾信,接著第二天立刻就被gmail給封了。

寄出的信都會被以這樣的內容來回覆(使用的webmail軟體是roundcube):

信件1.JPG

在這封信的後半中,gmail提示說我們的伺服器是信譽較低的伺服器,為了避免gmail的使用者收到太多垃圾信,所以把從我們信箱寄出的信都給擋了。

也就是gmail都收不到從這郵件伺服器寄出的所有信件。錯誤代碼是550-5.7.1

然後從gmail給的連結中,提示可以使用google提供的postmaster tool來監控郵件伺服器的動態,

在使用此工具時,能從gmail那邊拿到一個幫助驗證的金鑰,強化我們郵件伺服器的驗證機制。

詳細的介紹及安裝教學,可以參考遠振的這一篇文章:做一個好的寄件者 – Google Postmaster Tools | 遠振Blog

申請完,並且在DNS伺服器上設定好TXT紀錄以後,大概過個一天左右,gmail server的紀錄更新後,應該就可以解除對郵件伺服器的封鎖了。

當然,前提是要再三確認自己的郵件伺服器domain以及ip是否有被記錄在網路上的一些blacklist中,不然還是有很高機會再被鎖的。

可以利用這個網站來檢查自己的信箱伺服器是否有在黑名單中。

 

雖然能通過gmail的審查,讓信寄到gmail使用者的手中,但最好還是再進一步強化信件的認證會比較安全。

因此後面再稍微說一下SPF 以及DKIM。 (畢竟gmail也這麼建議了,請參考這篇,不符合其規則的話,搞不好哪天又會被鎖了 XD)

 

2. SPF:

SPF的主要用途是驗證信件是否確實是從有授權的主機中寄信出來的。

在設定上也較為簡單,同樣在DNS伺服器上新增一個TXT紀錄就好,郵件主機內的postfix設定、dovecot設定都可以都不用動。

格式及各項設定可以參考這篇的解說

通常設定過後會需要花一段時間讓DNS伺服器將新的紀錄更新到網路上,少則1~2小時,多的話可能要等上一整天才會反映出來

設置成功後,寄出的信中可以看到信件原始內容中會包含「spf=pass」的標籤,失敗的話則可能看到「spf=none」或「spf=fail」。

 

3. DKIM:

dkim的設定就稍微複雜一些了,dkim的驗證比spf又更嚴謹一些,會使用到金鑰的簽署來做驗證。

在linux系統中可以使用opendkim這個套件來達成這件事。

安裝就如同一般的linux系統下進行安裝一樣,

裝完後,通常其設定檔案會是 /etc/opendkim.conf

然後會有一個資料夾為 /etc/opendkim,這個資料夾其下又有一個keys的資料夾,以及KeyTable、SigningTable、TrustedHosts這三個檔案。

其他相關的安裝、設定及測試等等,網路上大多都有很多豐富的文章了,這邊不多贅述,有興趣的可以點擊最下方的相關文章連結。

這邊只稍微提一下筆者在測試及安裝過程中遇到的一些問題。

 

1. 金鑰長度

指令opendkim-genkey範例:opendkim-genkey -s mail -d example.domain.com -b 2048

-s 是指selecter名稱,這個名稱可以在 /etc/opendkim.conf 檔案中設定,-d 則是指要簽署的網域名稱

-b 則是指簽署的金鑰要有多長,預設似乎是1024長度,但gmail的文章中提到建議2048會較好,有需要的使用者可以嘗試多加這個參數

這樣產生出來的金鑰檔(指 產生出的.txt)內容會較長,如:

mail._domainkey IN TXT ( "v=DKIM1; k=rsa; " "p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0KyUMX3+KMvHpJLcJ4sHweyreer5683/wH58EcMcP2BeKhYnyiH8SsRD+WAwb/HjZef6EeFZHeNW4v6b9DreUS0khmq+kocsGIjfgdzQr8DSrj7mHfulEjS" "w76DFy1K9bFxXVf1e/tU64ssLg631ac3q954+zwkFgEMy0rv88O5vdTkp2m8cJlam9j2h7vEjtGhDDzO2bd/YU1wPiYEfEfCmdL8lVRSFWxhsfAfitgvorBXFwwVuMkeTaCxi7lEcMZpuDjt1c4D2gywj+qL6JOSl/AICIa5ozHSMIx+5LhDhI1gGHT3Htjw5n1//iq5Eggm4K/+MhHd+RALswn6L1wIDAQAB" ) ; ----- DKIM key mail for example.domain.com

要注意的是,當使用2048長度時來產生時,這串金鑰可能會被斷行以及被雙引號分成兩段,如上所示,因此寫到DNS伺服器中的TXT紀錄時,要將記錄中的所有雙引號拔掉,並將兩段合併,讓這筆紀錄寫成單獨一行非常長串的字串,不能換行的。

 

2.  使用opendkim-testkey時,顯示 No key

網路上大多教學會提到要重啟opendkim的服務,讓他抓到新的設定,但卻較少提到,

opendkim在使用opendkim-testkey時,會去網路上找尋及比對設定好的DNS TXT紀錄,而這個紀錄在主機電腦中其實是有暫存的

所以會需要將DNS紀錄的相關服務也重啟,這樣就可以重新上網抓到更新後的DNS紀錄了

筆者因為太懶了,懶得找可能會是哪個服務暫存的,就直接將主機系統reboot了 XD

成功抓到的話就會顯示 key ok 的字串

另外,跟SPF一樣,DNS上新增的DKIM紀錄也是需要花時間去更新到網路上的,少則1~2小時,多的話可能要等上一整天才會反映出來

 

==============================================================

安裝DKIM的相關文章如下,可以相互參照,嘗試了解每一個環節的用途:

Postfix 郵件伺服器新增 SPF、DKIM

DKIM 設定

Postfix 與 DKIM

 

文章標籤

kataraxia 發表在 痞客邦 留言(0) 人氣()

最終更新於:2018.10.15 

最近工作內容開始接觸到一些linux系統服務的安裝,想說記錄一下細節,未來自己遺忘的話可以回顧。

 

先說明工作環境:

centOS6,在上面已有加裝postfix,要再安裝 postfwd2,來補足 postfix 在寄送信件時的一些規範。

 

主要的安裝流程是參考如下兩篇文獻:

A: postfix 利用 postfwd2 達到限制寄件數量

B: postfwd (postfix用ポリシーサーバ)

 

安裝流程中有一些細節要注意的點:

1. 在A篇中有提到需要先安裝一些perl套件,這邊是用cpan來安裝perl模組,過程中筆者有遇到一個問題,
就是若沒有安裝YAML的話,在使用cpan的安裝過程中會出錯(yaml not installed)。

但筆者其實對cpan不太熟,所以還是參考了參考B篇中提到的方法:需要安裝的Perl模組(Net::Server::Daemonize、Net::Server::Multiplex、Net::Server::PreFork等)其實可以靠安裝 perl-Net-Server 這個套件來取得,所以筆者參考這篇,直接下指令「yum install perl-Net-Server」來進行安裝了。

同樣的 Net::DNS 也可以依靠安裝 perl-Net-DNS 套件來取得。

 

2. 在B篇中有提到如何將 postfwd2 加入到開機時自動起動的項目中,
使用了這個指令:「chkconfig --add postfwd2」,要注意的一點是,
要成功加入排程中的話,在B篇中前面的 postfwd-script.sh 檔案修改時,
「# chkconfig: 35 75 25」這一行一定要加,不然會出錯。
這一行雖然是註解,但chkconfig是會去讀取它的,所以不能省去。

chkconfig: 35 75 25 這一行說明此行程的運作範圍及優先級,
在第一個數字「35」中,3代表在多人的無圖形介面使用時會運作;5代表在多人的圖形介面使用時會運作,級別的部分可以參考這篇的說明,
後面的兩個數字代表在開機級關機時的優先順序,數字越小,越先執行,這篇最下面有提到。

 

暫時先這樣,關於後續的設定整理方面,可能還需要一些時間一邊實作一邊紀錄才行....

 

文章標籤

kataraxia 發表在 痞客邦 留言(0) 人氣()

繼上次在研究室中更換一台具備無線網路的路由器(或說是IP分享器)之後,這次又一次實際的經驗來進行另一種路由器的安裝

文章標籤

kataraxia 發表在 痞客邦 留言(0) 人氣()

在學了好幾年的java後,也決定來學學C++

在過去就常聽許多學長姐說C或C++在現今實務上還是十分有用且廣泛的,有著部份的不可取代性。

常勸我們這些後輩還是要學一下比較好,所以我就自學啦。

 

先學過JAVA後轉戰學C++還是有一定的好處的,就是學的比較快,一些基礎的部分可以多少跳過去一些,

剛好實務上有用到,就想說自行開發一個還算有一點小小小小用途的程式><

就是這個分組小程式啦,以下將詳細的介紹這隻小程式的結構!!

因為主要還是自己的筆記,雖然大部分都會介紹,但太過基本的部分就會跳過啦(有點隨便) XD

文章標籤

kataraxia 發表在 痞客邦 留言(0) 人氣()

本文章最後更新於: 2012/12/9

 

前幾天更新N牌的顯卡驅動程式,但老是更新不成功

不斷顯示安裝失敗

所以還是去查了一下相關資料

最後發現是因為裝了NTLEA,所以才會更新不了

主要來源可參考這一篇文章: 

NVIDIA 圖形驅動程式程式安裝失敗之自助解決法 - 阿毛- 痞客邦PIXNET

 
雖然不知道原因為何,但把NTLEA先解除安裝後,再去跑NVIDIA 驅動更新程式就OK了
順利地一次跑完。
 
總之先記錄一下,避免下次要再次更新驅動的時候又會忘記^^
 
PS: 筆者電腦: WIN7 64BIT, 
       顯卡: Nvidia GeForce 500 series (desktop)
 
 
---------------------------------------------------------------------------
 
文章標籤

kataraxia 發表在 痞客邦 留言(0) 人氣()

前幾天,在研究室的同學詢問說研究室有沒有無線網路

嘛,我們的研究室算是比較舊的了,有的就只有一個小小的機櫃和幾個NAT而已

目前大家使用的個人電腦都是用分享出來的虛擬IP來接網路的。

 

文章標籤

kataraxia 發表在 痞客邦 留言(0) 人氣()

此篇文章最後修改日期: 2012-04-11 10:51:14

 

java的jdk是開發java程式時最重要的開發程式環境

可以去官網下載(最新版是7,不過建議在7還沒完善前還是先裝6吧,畢竟7也才剛出來沒多久,bug什麼的難免還是會有的@@)

文章標籤

kataraxia 發表在 痞客邦 留言(0) 人氣()

此篇文章最後更新於: 2014-06-04 12:42:53

 

前不久組了一台新電腦,灌的是WIN7-64bit 的OS
但使用了一陣時間後才發覺,為啥都沒有像xp時那樣煩人的更新了
之後翻了一下電腦,找到更新的按鈕了,但按下去後,
他居然跳出"Windows Update 目前無法檢查更新,因為該服務尚未執行,您可能需要重新啟動電腦"這麼一句話
照著重開機後也還是一樣,無法開啟自動更新

文章標籤

kataraxia 發表在 痞客邦 留言(28) 人氣()