這篇文章主要介紹了配置fail2ban對Apache伺服器進行安全防護的方法,主要是起到過濾IP地址的效果,示例基於Linux系統,需要的朋友可以參考下
生產環境中的Apache 伺服器可能會受到不同的攻擊。攻擊者或許試圖透過暴力攻擊或執行惡意腳本來取得未經授權或禁止存取的目錄。一些惡意爬蟲或許會掃描你網站下的各種安全漏洞,或是透過收集email地址和web表單來發送垃圾郵件。
Apache伺服器具有全面的日誌功能,可以捕捉到各種攻擊所反映的異常事件。然而,它還不能係統地解析具體的apache 日誌並迅速地對潛在的攻擊進行反應(例如,禁止/解禁IP位址)。這時候fail2ban可以解救這一切,解放了系統管理員的工作。
fail2ban是一種入侵防禦工具,可以基於系統日誌檢測不同的工具並且可以自動採取保護措施例如:透過iptables禁止ip、透過/etc/hosts.deny 阻止連線、或透過郵件發送通知。 fail2ban具有一系列預先定義的“監獄”,它使用特定程式日誌過濾器來偵測通常的攻擊。你也可以編寫自訂的規則來偵測來自任意程式的攻擊。
在本教學中,我會示範如何設定fail2ban來保護你的apache伺服器。我假設你已經安裝了apache和fail2ban。
什麼是 Fail2ban 監獄
讓我們更深入地了解 fail2ban 監獄。監獄定義了具體的應用策略,它會為指定的程序觸發一個保護措施。 fail2ban在 /etc/fail2ban/jail.conf 下為一些流行程序如Apache、Dovecot、Lighttpd、MySQL、Postfix、SSH 等預定義了一些監獄。每個監獄都透過特定的程式日誌過濾器(在/etc/fail2ban/fileter.d 下面)來偵測通常的攻擊。讓我來看一個例子監獄:SSH監獄。
#程式碼如下:
[ssh] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 6 banaction = iptables-multiport
SSH監獄的設定定義了這些參數:
[ssh]: 方括號內是監獄的名字。
enabled:是否啟用監獄
port: 連接埠號碼(或對應的服務名稱)
filter:偵測攻擊的日誌解析規則
logpath: 所偵測的日誌檔案## c 次數
banaction: 所進行的禁止操作
啟用預先定義的apache監獄
在Debian 或 Ubuntu啟用Apache監獄
$ sudo vi /etc/fail2ban/jail.local代碼如下:
# 检测密码认证失败 [apache] enabled = true port = http,https filter = apache-auth logpath = /var/log/apache*/*error.log maxretry = 6 # 检测漏洞和 PHP 脆弱性扫描 [apache-noscript] enabled = true port = http,https filter = apache-noscript logpath = /var/log/apache*/*error.log maxretry = 6 # 检测 Apache 溢出攻击 [apache-overflows] enabled = true port = http,https filter = apache-overflows logpath = /var/log/apache*/*error.log maxretry = 2 # 检测在服务器寻找主目录的尝试 [apache-nohome] enabled = true port = http,https filter = apache-nohome logpath = /var/log/apache*/*error.log maxretry = 2由於上面的監獄沒有指定措施,這些監獄都會觸發預設的措施。若要查看預設的措施,請在/etc/fail2ban/jail.conf中的[DEFAULT]下找到「banaction」。 程式碼如下:
banaction = iptables-multiport本範例中,預設的操作是iptables-multiport(定義在/etc/fail2ban/action.d/iptables-multiport.conf)。這個措施使用iptable的多埠模組禁止一個IP位址。 在啟用監獄後,你必須重啟fail2ban來載入監獄。
$ sudo service fail2ban restart
在CentOS/RHEL 或Fedora中啟用Apache監獄
要在基於紅帽的系統中啟用預先定義的監獄,如下建立/etc/fail2ban/ jail.local。$ sudo vi /etc/fail2ban/jail.local程式碼如下:
# 检测密码认证失败 [apache] enabled = true port = http,https filter = apache-auth logpath = /var/log/httpd/*error_log maxretry = 6 # 检测抓取邮件地址的爬虫 [apache-badbots] enabled = true port = http,https filter = apache-badbots logpath = /var/log/httpd/*access_log bantime = 172800 maxretry = 1 # 检测漏洞和 PHP 脆弱性扫描 [apache-noscript] enabled = true port = http,https filter = apache-noscript logpath = /var/log/httpd/*error_log maxretry = 6 # 检测 Apache 溢出攻击 [apache-overflows] enabled = true port = http,https filter = apache-overflows logpath = /var/log/httpd/*error_log maxretry = 2 # 检测在服务器寻找主目录的尝试 [apache-nohome] enabled = true port = http,https filter = apache-nohome logpath = /var/log/httpd/*error_log maxretry = 2 # 检测执行不存在的脚本的企图 # 这些都是流行的网站服务程序 # 如:webmail, phpMyAdmin,WordPress port = http,https filter = apache-botsearch logpath = /var/log/httpd/*error_log maxretry = 2注意這些監獄檔案預設的操作是iptables-multiport(定義在/etc/fail2ban/jail.conf中[DEFAULT]欄位下的「banaction」中)。這個措施使用iptable的多埠模組禁止一個IP位址。 啟用監獄後,你必須重啟fail2ban來載入監獄。 在Fedora 或CentOS/RHEL 7中:
$ sudo systemctl restart fail2ban在CentOS/RHEL 6中:
$ sudo service fail2ban restart
檢查和管理fail2ban禁止狀態
#監獄一旦啟動後,你可以用fail2ban的客戶端命令列工具來監控目前的禁止狀態。 查看啟動的監獄清單:$ sudo fail2ban-client status查看特定監獄的狀態(包含禁止的IP清單):
$ sudo fail2ban-client status [监狱名]
你也可以手动禁止或者解禁IP地址:
要用制定监狱禁止IP:
$ sudo fail2ban-client set [name-of-jail] banip [ip-address]
要解禁指定监狱屏蔽的IP:
$ sudo fail2ban-client set [name-of-jail] unbanip [ip-address]
总结
本篇教程解释了fail2ban监狱如何工作以及如何使用内置的监狱来保护Apache服务器。依赖于你的环境以及要保护的web服务器类型,你或许要调整已有的监狱或者编写自定义监狱和日志过滤器。查看outfail2ban的官方Github页面来获取最新的监狱和过滤器示例。
以上是教你如何設定fail2ban對Apache伺服器進行安全防護的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Linux的5個核心組件分別是內核、Shell、文件系統、系統庫和系統工具。 1.內核管理硬件資源並為應用程序提供服務。 2.Shell作為用戶與系統的接口,解釋並執行命令。 3.文件系統負責數據的存儲和組織。 4.系統庫提供預編譯函數供應用程序調用。 5.系統工具用於系統管理和維護。這些組件協同工作,賦予Linux強大的功能和靈活性。

本文介紹幾種檢查Debian系統OpenSSL配置的方法,助您快速掌握系統安全狀態。一、確認OpenSSL版本首先,驗證OpenSSL是否已安裝及版本信息。在終端輸入以下命令:opensslversion若未安裝,系統將提示錯誤。二、查看配置文件OpenSSL主配置文件通常位於/etc/ssl/openssl.cnf。您可以使用文本編輯器(例如nano)查看:sudonano/etc/ssl/openssl.cnf此文件包含密鑰、證書路徑及加密算法等重要配置信息。三、利用ope

本指南詳細介紹如何在Debian系統上搭建Hadoop開發環境。一、安裝Java開發套件(JDK)首先,安裝OpenJDK:sudoaptupdatesudoaptinstallopenjdk-11-jdk-y配置JAVA_HOME環境變量:sudonano/etc/environment在文件末尾添加(根據實際JDK版本調整路徑):JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"保存並退出,然後執行:source/etc

在Debian系統上有效管理Hadoop資源,需要遵循以下步驟:Hadoop部署:首先,在Debian系統上完成Hadoop的安裝與配置。這包括下載Hadoop發行包、解壓、設置環境變量等必要操作。集群配置:安裝完成後,對Hadoop集群進行配置,涵蓋HDFS(Hadoop分佈式文件系統)和YARN(YetAnotherResourceNegotiator)的設置。需要修改核心配置文件,例如:core-site.xml、hdfs-site.xml、mapred-site.x

提升DebianTomcat日誌安全性,需關注以下關鍵策略:一、權限控制與文件管理:日誌文件權限:默認日誌文件權限(640)限制了訪問,建議修改catalina.sh腳本中的UMASK值(例如,從0027改為0022),或在log4j2配置文件中直接設置filePermissions,以確保合適的讀寫權限。日誌文件位置:Tomcat日誌通常位於/opt/tomcat/logs(或類似路徑),需定期檢查該目錄的權限設置。二、日誌輪轉與格式:日誌輪轉:配置server.xml

Tomcat服務器日誌中的警告信息提示潛在問題,可能影響應用性能或穩定性。有效解讀這些警告信息需要關注以下幾個關鍵點:警告內容:仔細研讀警告信息,明確問題類型、成因及可能的解決方法。警告信息通常會提供詳細描述。日誌級別:Tomcat日誌包含不同級別信息,例如INFO、WARN、ERROR等。 “WARN”級別的警告提示非致命性問題,但需要關注。時間戳:記錄警告發生的時間,以便追溯問題出現的時間點,分析其與特定事件或操作的關係。上下文信息:查看警告信息前後日誌內容,獲取

Tomcat日誌是診斷內存洩漏問題的關鍵。通過分析Tomcat日誌,您可以深入了解內存使用情況和垃圾回收(GC)行為,從而有效定位和解決內存洩漏。以下是如何利用Tomcat日誌排查內存洩漏:1.GC日誌分析首先,啟用詳細的GC日誌記錄。在Tomcat啟動參數中添加以下JVM選項:-XX: PrintGCDetails-XX: PrintGCDateStamps-Xloggc:gc.log這些參數會生成詳細的GC日誌(gc.log),包含GC類型、回收對像大小和時間等信息。分析gc.log

Debian系統下Apache日誌對服務器性能的影響是雙刃劍,既有積極作用,也有潛在的負面影響。積極方面:問題診斷利器:Apache日誌詳細記錄服務器所有請求和響應,是快速定位故障的寶貴資源。通過分析錯誤日誌,可以輕鬆識別配置錯誤、權限問題及其他異常。安全監控哨兵:訪問日誌能夠追踪潛在安全威脅,例如惡意攻擊嘗試。通過設置日誌審計規則,可以有效檢測異常活動。性能分析助手:訪問日誌記錄請求頻率和資源消耗,幫助分析哪些頁面或服務最受歡迎,從而優化資源分配。結合top或htop等


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

WebStorm Mac版
好用的JavaScript開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Dreamweaver Mac版
視覺化網頁開發工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。