搜尋
首頁運維linux運維教你如何設定fail2ban對Apache伺服器進行安全防護的方法

這篇文章主要介紹了配置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: 所進行的禁止操作

定義在監獄配置中的任意參數都會覆寫fail2ban-wide 中對應的預設設定參數。相反,任何缺少的參數都會使用定義在[DEFAULT] 欄位的預設值。

預先定義的日誌過濾器都放在/etc/fail2ban/filter.d,而可以採取的禁止操作放在 /etc/fail2ban/action.d。


201561195702833.jpg (769×644)

如果你想要覆寫fail2ban的預設作業或定義任何自訂監獄,你可以建立/etc/fail2ban/jail.local*檔案。在本教程中,我會使用/etc/fail2ban/jail.local。


啟用預先定義的apache監獄

fail2ban的預設安裝為Apache服務提供了一些預先定義監獄和篩選器。我要啟用這些內建的Apache監獄。由於Debian和RedHat配置的稍微不同,我會分別提供它們的設定檔。


在Debian 或 Ubuntu啟用Apache監獄

要在基於Debian的系統上啟用預先定義的apache監獄,如下建立/etc/fail2ban/jail.local。

  $ 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 [监狱名]

201561195749494.jpg (800×298)

    你也可以手动禁止或者解禁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中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Linux的心臟:5個核心組件Linux的心臟:5個核心組件Apr 13, 2025 am 12:15 AM

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

如何檢查Debian OpenSSL配置如何檢查Debian OpenSSL配置Apr 12, 2025 pm 11:57 PM

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

Debian上Hadoop開發環境如何搭建Debian上Hadoop開發環境如何搭建Apr 12, 2025 pm 11:54 PM

本指南詳細介紹如何在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資源管理怎麼做Debian上Hadoop資源管理怎麼做Apr 12, 2025 pm 11:51 PM

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

Debian Tomcat日誌安全設置有哪些Debian Tomcat日誌安全設置有哪些Apr 12, 2025 pm 11:48 PM

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

如何解讀Tomcat日誌中的警告如何解讀Tomcat日誌中的警告Apr 12, 2025 pm 11:45 PM

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

Tomcat日誌如何幫助排查內存洩漏Tomcat日誌如何幫助排查內存洩漏Apr 12, 2025 pm 11:42 PM

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

Debian Apache日誌對服務器性能有何影響Debian Apache日誌對服務器性能有何影響Apr 12, 2025 pm 11:39 PM

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

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

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

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SecLists

SecLists

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

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

Safe Exam Browser

Safe Exam Browser

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