Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Erfahren Sie, wie Sie fail2ban zum Schutz des Apache-Servers konfigurieren

Erfahren Sie, wie Sie fail2ban zum Schutz des Apache-Servers konfigurieren

怪我咯
怪我咯Original
2017-06-27 09:51:072343Durchsuche

In diesem Artikel wird hauptsächlich die Methode zum Konfigurieren von fail2ban zum Schutz des Apache-Servers vorgestellt. Das Beispiel basiert auf dem Linux-System

In der Produktionsumgebung kann der Apache-Server für verschiedene Angriffe anfällig sein. Ein Angreifer kann versuchen, durch Brute-Force-Angriffe oder die Ausführung bösartiger Skripte Zugriff auf nicht autorisierte oder verbotene Verzeichnisse zu erhalten. Einige bösartige Crawler scannen Ihre Website möglicherweise auf verschiedene Sicherheitslücken oder versenden Spam, indem sie E-Mail-Adressen und Webformulare sammeln.

Der Apache-Server verfügt über umfassende Protokollierungsfunktionen, die ungewöhnliche Ereignisse erfassen können, die sich in verschiedenen Angriffen widerspiegeln. Allerdings ist es noch nicht in der Lage, bestimmte Apache-Protokolle systematisch zu analysieren und schnell auf potenzielle Angriffe zu reagieren (z. B. IP-Adressen sperren/entsperren). Zu diesem Zeitpunkt kann fail2ban all dies speichern und die Arbeit des Systemadministrators entlasten.

fail2ban ist ein Intrusion-Prevention-Tool, das verschiedene Tools anhand von Systemprotokollen erkennen und automatisch Schutzmaßnahmen ergreifen kann, z. B. das Sperren von IPs über iptables, das Blockieren von Verbindungen über /etc/hosts.deny oder das Versenden von Benachrichtigungen per E-Mail. fail2ban verfügt über eine Reihe vordefinierter „Jails“, die spezifische Programmprotokollfilter verwenden, um häufige Angriffe zu erkennen. Sie können auch benutzerdefinierte Regeln schreiben, um Angriffe von beliebigen Programmen zu erkennen.

In diesem Tutorial zeige ich, wie Sie fail2ban konfigurieren, um Ihren Apache-Server zu schützen. Ich gehe davon aus, dass Sie Apache und fail2ban bereits installiert haben.
Was ist Fail2ban Jail?
Lassen Sie uns einen genaueren Blick auf fail2ban Jail werfen. Jail definiert spezifische Anwendungsrichtlinien, die eine Schutzmaßnahme für das angegebene Programm auslösen. fail2ban verfügt über vordefinierte Jails unter /etc/fail2ban/jail.conf für einige beliebte Programme wie Apache, Dovecot, Lighttpd, MySQL, Postfix, SSH usw. Jedes Gefängnis erkennt häufige Angriffe durch spezifische Programmprotokollfilter (unter /etc/fail2ban/filter.d). Schauen wir uns ein Beispielgefängnis an: das SSH-Gefängnis.

Der Code lautet wie folgt:

[ssh]
    enabled   = true
    port      = ssh
    filter    = sshd
    logpath   = /var/log/auth.log
    maxretry  = 6
    banaction = iptables-multiport

Die Konfiguration des SSH-Gefängnisses definiert diese Parameter:

[ssh]: In eckigen Klammern steht der Name des Gefängnisses.
aktiviert: ob das Jail aktiviert werden soll
Port: Portnummer (oder entsprechender Dienstname)
Filter: Protokollanalyseregeln zur Erkennung von Angriffen
Protokollpfad: erkannte Protokolldatei
Maxretry: maximale Fehlernummer of times
banaction: Jeder Parameter, der in der Jail-Konfiguration für den gesperrten Vorgang

definiert ist, überschreibt die entsprechenden Standardkonfigurationsparameter in fail2ban-wide. Stattdessen verwenden alle fehlenden Parameter den im Feld [DEFAULT] definierten Standardwert.

Vordefinierte Protokollfilter werden in /etc/fail2ban/filter.d abgelegt, und die verbotenen Aktionen, die ausgeführt werden können, werden in /etc/fail2ban/action.d abgelegt.

201561195702833.jpg (769×644)

Wenn Sie das Standardverhalten von fail2ban überschreiben oder benutzerdefinierte Gefängnisse definieren möchten, können Sie /etc/fail2ban/jail.local*-Dateien erstellen. In diesem Tutorial verwende ich /etc/fail2ban/jail.local.
Vordefinierte Apache-Jails aktivieren

Die Standardinstallation von fail2ban stellt einige vordefinierte Jails und Filter für den Apache-Dienst bereit. Ich möchte diese integrierten Apache-Jails aktivieren. Da Debian und RedHat etwas unterschiedlich konfiguriert sind, werde ich ihre Konfigurationsdateien separat bereitstellen.
Aktivieren Sie Apache Jail auf Debian oder Ubuntu

Um das vordefinierte Apache Jail auf Debian-basierten Systemen zu aktivieren, erstellen Sie /etc/fail2ban/jail.local wie folgt.

  $ sudo vi /etc/fail2ban/jail.local

Der Code lautet wie folgt:

# 检测密码认证失败
    [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

Da die oben genannten Gefängnisse keine festgelegten Maßnahmen haben, werden diese Gefängnisse Standardmaßnahmen auslösen. Um die Standardaktionen anzuzeigen, suchen Sie nach „banaction“ unter [DEFAULT] in /etc/fail2ban/jail.conf.

Der Code lautet wie folgt:

banaction = iptables-multiport

In diesem Beispiel ist die Standardoperation iptables-multiport (definiert in /etc/fail2ban/action.d/iptables-multiport.conf). . Diese Maßnahme nutzt das Multiport-Modul von iptable, um eine IP-Adresse zu sperren.

Nachdem Sie das Jail aktiviert haben, müssen Sie fail2ban neu starten, um das Jail zu laden.

  $ sudo service fail2ban restart

Aktivieren Sie Apache Jail in CentOS/RHEL oder Fedora

Um vordefinierte Jails in Red Hat-basierten Systemen zu aktivieren, erstellen Sie /etc/ wie folgt: fail2ban/jail. lokal.

  $ sudo vi /etc/fail2ban/jail.local

Der Code lautet wie folgt:

# 检测密码认证失败
    [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

Beachten Sie, dass die Standardoperation dieser Jail-Dateien iptables-multiport ist (definiert im Feld [DEFAULT] in /etc/fail2ban /jail.conf „banaction“). Diese Maßnahme nutzt das Multiport-Modul von iptable, um eine IP-Adresse zu sperren.

Nachdem Sie das Jail aktiviert haben, müssen Sie fail2ban neu starten, um das Jail zu laden.

In Fedora oder CentOS/RHEL 7:

  $ sudo systemctl restart fail2ban

In CentOS/RHEL 6:

  $ sudo service fail2ban restart

Fail2ban-Verbotsstatus prüfen und verwalten

Sobald das Gefängnis aktiviert ist, können Sie das Client-Befehlszeilentool von fail2ban verwenden, um den aktuellen Sperrstatus zu überwachen.

Liste der aktiven Gefängnisse anzeigen:

  $ sudo fail2ban-client status

Status eines bestimmten Gefängnisses anzeigen (einschließlich Liste der gesperrten IPs):

  $ 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页面来获取最新的监狱和过滤器示例。

Das obige ist der detaillierte Inhalt vonErfahren Sie, wie Sie fail2ban zum Schutz des Apache-Servers konfigurieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn