spamdyke是用C語言編寫的一個下拉式過濾器用於qmail的應用,替代sendmail的,旨在提供眾多的功能,包括灰名單,連接時間黑名單,DNS RHSBL / RBL檢查,提高了測井一個開源軟件,和發件人的MX checking.Features在glancespamdyke已設計以這樣一種方式,它提供了的TLS和SMTP AUTH以打補丁的qmail服務器。它可用於監測和截距的SMTP一個qmail服務器和遠程主機之間的連接。
該過濾器能夠攔截垃圾郵件,而垃圾郵件發送者仍然連接,而無需任何額外的存儲和處理。 spamdyke擁有眾多的反垃圾郵件過濾器,以及各種功能,這將增強qmail的。
spamdyke包括各種各樣的反垃圾郵件過濾器,組織在四個主要類別,如反向DNS濾波器,白名單和黑名單過濾器,灰名單過濾器等過濾器,可以一目了然,在未來section.Included反垃圾filtersAmong觀看反向DNS過濾器,我們可以提到用於需要反向DNS名稱,對於需要反向DNS名稱解析為IP地址的支持的支持,對於需要反向DNS名的支持是真實的,而不是動態分配,以及支持用於需要一個有效的MX (郵件交換器)為發件人的域名。
白名單/黑名單過濾器包括搜索本地IP地址和反向DNS白名單或黑名單的文件,搜索的DNS RBLs的(實時白名單和黑名單),搜索的DNS RHSBLs(右手側白名單和黑名單),搜索接收者和發送者的白名單或能力黑名單的文件,以及搜索郵件頭的某些內容。
在另一方面,灰名單過濾器可以讓你灰名單一定的收件人域,從一定的反向DNS域名或IP地址,灰名單連接到灰名單跳過某些領域,反向DNS域名或IP地址,並執行最高和最低年齡為灰名單條目
什麼在此版本中是新的:
- 在重新整理了測試腳本,按類別將它們放在文件夾中。這只是使上市的目錄更易於管理。
- 修正的README文件中的一些錯別字。感謝約翰·門多薩報告的。
- 修正了spamdyke_log一個很不起眼的錯誤():在Linux系統上(可能只有64位系統),vsyslog()偶爾會無法打印所有的可變參數。一種方法被認為引發這種行為 - 當RDNS黑名單-DIR過濾器從配置目錄啟動
- 修正了find_domain一個bug()解析某些無效的格式時,可能導致段錯誤。感謝Gary Gendel報告這一項。
- 新增了備份/恢復功能,將與QUOT;運行"腳本在"測試"文件夾,運行任何腳本之前保存最關鍵的系統和qmail文件的副本。這是必要的,因為一些腳本修改這些文件,如果他們不正常運行或取消,原件丟失。
- 新增了" -skipcompile"標誌為"運行"腳本在"測試"文件夾跳過重新配置和重新編譯所有的二進制文件的腳本運行時。
- 在改變了"運行"腳本在"測試"前後測試運行後,文件夾清空qmail的隊列。
- 在改變了"運行"腳本在"測試"文件夾複製到當前系統和qmail的配置文件進行比較,以最新的備份每個腳本結束後。如果它們不匹配,則最新的備份將被恢復。如果他們仍然不匹配,腳本停止與錯誤。
- 在改變nihdns_query()接受可選"優先"類型的響應。如果多種類型的查詢,它會等待至少一個超時時段為該類型的應答到達而不是總是接受第一應答到達。然而,重新發送查詢之前,它會接受一個保存的答案。
- 在不向後兼容:改變nihdns_mx()喜歡的MX記錄了A記錄,如果同時存在。如果可以選擇,MX記錄將被檢查的有效性和A記錄將被忽略。感謝布魯斯·施雷伯的建議這一個。
- 在固定filter_level()和smtp_filter()不顧白名單,並要求身份驗證,如果與QUOT;過濾級別和QUOT;選項設置為QUOT;要求-auth的",如文檔說,它應該。感謝阿恩報告這一項。
- 在改變nihdns_create_packet()脫衣使用它們DNS查詢之前尾隨名點。結尾點是傳統方式告訴libc中的解析器不附加本地域名和許多系統管理員期望有使用它。因為spamdyke從未追加地域和不使用的libc的解析器,它是沒有必要的,並導致查找失敗。由於Dossy鹽原報告這一項。
- 在改變中間人()總是發送" STARTTLS"回應" EHLO"作為一個延續,從來沒有像最後一行(僅當spamdyke被插入" STARTTLS")。這個作品圍繞在Android郵件客戶端,只查找和QUOT錯誤; STARTTLS"作為一個延續。感謝喬納斯Pasche寫關於如何解決這個bug在他的博客。
- 在不向後兼容:改變的&QUOT的含義;白名單"僅免除spamdyke的垃圾郵件過濾器的連接;白名單不再允許連接到中繼郵件。這意味著spamdyke現在將只設置RELAYCLIENT環境變量,如果"中繼級"選項設置為QUOT;允許-所有&QUOT ;.中繼現在必須通過的tcpserver或xinetd進行控制。非常感謝埃里克·舒伯特的建議,並與我討論這個。
- 在不向後兼容:刪除了"訪問文件"和"甩文訪問被拒絕"選擇,因為他們只需要控制中繼。還取消了行使他們修改了他們使用的許多其他測試腳本的測試腳本。
- 在不向後兼容:刪除了"無檢查和QUOT;中繼級"從&QUOT值;選項,改變的意義和QUOT;正常"值使用以前分配到&QUOT邏輯,沒有檢查和QUOT;
- 新增的選項和QUOT;拒絕發件人"取多個值。如果該值"沒有本地和QUOT;給定,如果域名沒有本地承載發件人將被拒絕。如果該值與QUOT;認證失配"給出,發件人將被拒絕,如果發件人地址不完全驗證過程中提供的用戶名(或者驗證用戶名不是電子郵件地址,發送者的用戶名必須與身份驗證的用戶名一致)相匹配。如果該值與QUOT;認證域不匹配"給出,發送方將如果域名沒有身份驗證過程中提供的用戶名的一部分被拒絕。感謝馬克·弗拉特的建議這一個。
- 新增的方式];拒絕文本發送者,沒有本地和QUOT;和"拒絕文本發送者認證不匹配"設置給甩文本時的"拒絕發件人和QUOT;選項的過濾器被觸發。
- 在不向後兼容:刪除選項"拒絕缺失發件人-MX"和折疊的過濾器進入"拒絕發件人"過濾器的"無-MX"選項。
- 在不向後兼容:改名選項"拒絕文本缺失發件人-MX"到"拒絕文本發送者,無MX"
- 在不向後兼容:改名選項"拒絕,同樣的發送者,接收者QUOT;到"拒絕收件人"與值QUOT;同時,作為發件人和QUOT ;.功能保持不變。
- 在不向後兼容:改名選項"拒絕,文字相同的發送者,接收者QUOT;到"拒絕文本收件人,同為發件人和QUOT;
- 在不向後兼容:改名選項"地方域文件"到"的qmail-的rcpthosts文件&QUOT ;.命名一直是令人困惑,因為qmail的這實際上是在本地託管與本地文件系統(當地人)郵箱應的qmail-smtpd的過程中SMTP(rcpthosts中)接受域和域之間的區別。這些選項總是意味著前者,但現在spamdyke需要知道域的兩份名單,現在是時候重新命名。現在也以配置目錄才可使用該選項。
- 在不向後兼容:刪除選項"本地域中輸入"因為可以SMTP期間被接受供給域僅spamdyke(但不是的qmail)將導致在收信人驗證不一致的結果。如果一個域是SMTP期間被接受,它應該被添加到所使用的兩個spamdyke和qmail控制文件。
- 添加CDB在CDB搜索代碼[CH]閱讀DJB的"恆數據庫"在收件人驗證文件。這些文件的格式是權利(由DJB)要快,效率高。不要相信炒作...
- 新增的選項和QUOT;的qmail-morercpthosts-CDB"以允許提供的CDB文件包含為哪些郵件應的SMTP期間接受域的列表。有沒有人真正使用這個qmail的"特徵"
- 在澆過的qmail的文檔和源代碼,以弄清楚它究竟是如何確定從何處傳遞消息。該文件是經常錯誤和廣泛的測試是需要發現的真理。由此產生的程序封裝在文件夾的流程圖。
- 新增了"發電機"程序來創建測試腳本通過收件人確認流程圖檢查每一個可能的路徑,都與spamdyke到位,沒有(檢查流程圖是正確的)。程序生成的腳本是必須的,因為有近25萬可能的路徑進行測試。
- 在附加值和QUOT;無效"該選項"拒絕收件人"檢查是否本地收件人地址接受消息之前存在。決定是否/何處傳遞消息時,此驗證過程使用相同的邏輯qmail的,所以不需要額外的步驟,以使這項工作(例如保持在一個單獨的文件中的有效地址的列表)。如果這個過程確定的本地地址是有效的,傳送有保證。這個選項應該可以消除散射發送垃圾郵件的qmail的習慣。
- 在附加值和QUOT;不可用"該選項"拒絕收件人"檢查是否本地收件人接受郵件的時刻。大概從人們實際編輯的.qmail手工文件長老天緩繳,qmail的支票傳遞消息之前,文件上的文件和文件夾的權限。如果它們被設置為特定的值,qmail的將排隊的消息,直到權限被固定或反彈的消息,如果排隊時間過長。在這些啟發倍,這樣的權限更可能是由於比故意錯誤或疏忽。
- 新增的方式];的qmail-分配-CDB","的qmail-defaultdelivery文件","的qmail-envnoathost文件","的qmail-當地人文件","的qmail-ME-文件" ,"的qmail-percenthack文件"和"的qmail-virtualdomains文件"允許spamdyke使用不同的控制文件是否比qmail。這是不太可能的人永遠都需要這些選項(這將是不明智的使用它們),但他們可以以防萬一。
- 新增的選項和QUOT;拒絕-文本收件人無效"設置拒絕文本時,"無效"篩選"拒絕收件人"被觸發。
- 新增的選項和QUOT;拒絕文本收件人,無法"設置拒絕文本時"不可"篩選"拒絕收件人"被觸發。
- 在刪除功能filter_recipient_local()和移動它的邏輯為filter_recipient_valid()。
- 在刪除功能filter_recipient_relay()和移動它的邏輯為filter_recipient_valid()。
- 在改變了"有利於"選擇只顯示可用選項的列表沒有說明文字。
- 新增了"更幫助"選項,以顯示與所有幫助文本選項的完整列表。
- 新增的方式]; IP-繼電器輸入"," IP中繼文件"," RDNS繼電器輸入"和" RDNS中繼文件"要允許來自特定IP和/或RDNS名中繼,因為白名單不再意味著中繼的能力。如果這些選項都匹配,qmail的啟動前RELAYCLIENT變量被設置。
- 在創建" create_cdb"程序生成任意大小的CDB文件,充滿了隨機數據,測試spamdyke的CDB驗證程序。 create_cdb也有七個方面的能力,腐敗產生的CDB;這使得比單純使用隨機的垃圾文件更具體的測試。
- 刪除從測試腳本TESTSD_ *環境變量的所有用途,並與dnsdummy適當的調用替換它們。這使得測試腳本在沒有從外部DNS改變和無需運行spamdyke服務器找到示例值的潛在干擾運行。
- 在固定smtp_filter()和中間人()來清除打印日誌信息後保存的收件人地址的列表。這可以防止重複的日誌消息時,多封電子郵件被發送了相同的連接。由於特奧多爾Milkov和大衛達維多夫報告這一項。
- 新增了" -skippatched"和" -skipunpatched"標誌為"運行"腳本跳過需要的qmail的補丁或者未打補丁的版本,分別為任何測試。
- 修正了find_username一個小錯誤(),將截斷該用戶名的最後一個字符沒有域時給出。這已經不是一個問題,因為spamdyke拒絕沒有域名收件人地址反正,但收件人驗證測試腳本的一個發現。
- 新增的選項和QUOT; TLS-dhparams文件"選擇讀DH PARAMS從一個文件中的SSL / TLS密鑰協商創建臨時密鑰。感謝馬克Gregel的建議這一個。
- 在改變了所有的錯誤信息輸出文件名,函數名和行號生成它們,就像調試和過多的消息。
- 在增加了一個新的日誌級別,LOG_LEVEL_CONFIG_TEST,用於配置測試錯誤消息。該電平被視為大致相同LOG_LEVEL_ERROR除了未打印的文件名,函數名和行號。
- 在增加了一個新的決策水平,為FILTER_DECISION_AUTHENTICATED身份驗證的連接。過濾器例程使用此電平應該是未過濾由於認證與白名單的連接之間進行區分。
- 在增加了一個新的配置選項類型:CONFIG_TYPE_ALIAS。這種類型的選項別名其他選項。這消除了價值和潛在的重複在灰名單/灰名單的選項疏漏。
- 在添加一些代碼到"運行"腳本在"測試"目錄嘗試檢測核心轉儲。有些測試會申報成功,即使spamdyke段錯誤,並切斷輸出過早。
- 刪除未使用的功能reset_rejection()和skip_cfws()。
- 在發現spamdyke無法閱讀所有需要的收件人驗證正常運行過程中,因為它們是由不同的用戶有嚴格的權限和spamdyke不以root身份運行所擁有的文件。我不知道我怎麼錯過了,但它完全moots了一年多的工作。
- 感動了所有收件人valiation代碼到QUOT名為外部程序及; spamdyke-QRV&QUOT ;.這項計劃是為了只執行收件人驗證,沒有別的,所以它應該是安全的以root身份運行(至少比安全運行spamdyke根)。
- 在刪除選項"的qmail-分配-CDB","的qmail-defaultdelivery文件","的qmail-envnoathost文件","的qmail-當地人文件","的qmail-ME-文件"和"的qmail-percenthack文件"從spamdyke,因為收件人的驗證碼也沒有了。
- 新增的選項和QUOT;收件人驗證命令"傳遞路徑spamdyke-QRV,當需要收件人確認將被調用。
什麼是4.3.1版本,新的:
- 在該版本修正了幾個錯誤處理新標題黑名單過濾和訪問衝突,可導致崩潰。
- 在頭黑名單應該是安全的,使了。
什麼是4.3.0版本,新的:
- 在它增加基礎上,篩選信息的能力他們的頭內容。它修復了一些小錯誤,在Debian 7編譯錯誤和主要一系列的錯誤,可能導致緩衝區溢出(可能遠程利用,根據配置選項)。請立即升級!
什麼在4.2.0版本新:
- 在改變READ_FILE()返回的可用數量行讀取,而不是線(包括註釋和空白)的總數。
- 修正了一個巨大的thinko在許多調用READ_FILE() - 當函數返回0,返回值為NULL。這是造成spamdyke崩潰時,沒有內容被從文件中讀取" DNS黑名單文件"," DNS白名單文件"," RHS-黑名單文件"," RHS-白名單文件"和"主機文件&QUOT ;.感謝大衛·斯蒂勒報告這一個,跟踪下來,提供了很大的幫助。
- 新增的選項和QUOT; TLS-密碼列表"用於指定在SSL / TLS連接使用密碼的列表。這會不會是很多人都不會使用的選項,但在特定的設置是必需的。由於克里斯·博爾頓對這一建議之一,並產生了一個補丁來實現它。
- 在增加了一個新的價值" TLS級":" SMTP-無直通"允許spamdyke提供TLS,但防止它通過TLS通過對qmail的,如果SSL庫不能因為某些原因被初始化。
- 修正了smtp_filter,允許開放中繼時spamdyke配置了&QUOT錯誤;本地域中輸入"而不是"地方域文件"
- 從do_spamdyke感動碼()是一套標準輸入和標準輸出插座,以無阻塞到tls_read()和tls_write()代替。設置套接字非阻塞整個運行是造成一些奇怪的行為,其中記錄會經過一系列大投入停下來。
- 在(再一次)重構地址解析器來解決,這不是處理路由地址正確的bug。由於克里斯·博爾頓報告這一項。
- 在固定process_config_file()不重置"多"值默認,如果它在配置過程中故意清除。
- 在固定prepare_settings()處理命令行之前初始化所有的默認值或配置文件所以"多"值可以在配置過程中被清除。
- 在固定configure.ac使用GCC的#pragma命令對待格式警告視為錯誤,而不是依靠AC_LANG_WERROR(這並不總是有效)。
- 新增的方式]; DNS查詢型A"," DNS查詢類型-MX"," DNS查詢型PTR"和" DNS查詢型RBL"以限制可發送用於不同目的的DNS查詢的類型。由於特奧多爾Milkov的建議這一個。
- 修正了當一個後RCPT過濾器被觸發的非本地地址超時的錯誤。 spamdyke應該關閉連接到qmail的,等待它的退出,而是只是等待其退出,導致不必要的超時。由於烏爾里希C.曼斯報告這一項。
- 修正了policy.php.example一個錯字。感謝Richard Lamse報告這一項。
- 在固定的編譯器警告在Fedora 11由於二灘奧爾罕報告這一項。
- 修正了一個在那裡SENDRECV未初始化的變量是導致錯誤的攤位和超時的CentOS的5.5。
什麼是4.1.0版本,新的:
- 在一些bug修復,包括TLS / SSL的問題這可能會導致spamdyke掛下去。一些新的特性,包括拒絕消息時,發送者和接收者的地址是相同的。
什麼在4.0.10版本是新的:
- 在那台遠程IP中的Plesk 9中的bug地址到一個名字而不是一個IP地址被工作圍繞。
什麼是4.0.9版本,新的:
- 在該版本修正了在地址解析器了一個錯誤,為防止有些發件人/接受者黑名單/白名單條目匹配。
- 在它還修復了,這是無法找到spamdyke二進制如果它是當前目錄之外的配置測試功能中的錯誤。
什麼是4.0.8版本,新的:
- 在一種解決方法是增加了一個設計缺陷DJB的的multilog,可能會導致損壞的日誌消息時服務器負載下。
什麼在4.0.6版本新:
- 在關鍵詞的IP功能於RDNS濾波器現在可以正確地終止,使他們能夠匹配。
- 在AUTH從補丁qmail的廣告現在已經完全拆除時,與QUOT; SMTP-AUTH級"選項"總是QUOT;或QUOT;始終加密"
- 匹配RBL / RHSBL現在登錄當多個RBLs的/ RHSBLs使用的總記錄第一個替代的名稱。
- 在慢速遠程服務器正在處理禮貌地讓spamdyke不會消耗100%的CPU。
- 在使用了&QUOT完整的日誌記錄功能,記錄級"選項設置為QUOT;過度"不再發送日誌輸出到遠程服務器時spamdyke上使用的Plesk服務器。
要求:
- 在qmail的
評論沒有發現