Fail2ban für WordPress einrichten

Beim Betrieb eines Servers wird der Nutzer schnell feststellen, dass er nicht der einzige ist, der gerne Zugriff auf den Ser­ver hätte. Um zu häu­fige Log­in­ver­su­che abzu­blo­cken, gibt es Fail2ban. Die­ses Pro­gramm­pa­ket durch­sucht die ent­spre­chen­den Logs und blockiert bös­wil­lige Ver­su­che, in das Sys­tem ein­zu­bre­chen. Damit gehört Fail2ban zu den Intru­sion Preven­tion-Sys­te­men. Damit kann es auch zur Auswertung von Login-Versuchen auf die eigenen WordPress-Installationen genutzt werden. Wer in die Logs schaut, wird dort ähnliche Zeilen finden:

18.217.216.181 – – [23/Nov/2021:19:32:40 +0100] „POST /wp-login.php HTTP/1.1“ 200 8408 „https://seeseekey.net/wp-login.php“ „Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0“

Um WordPress mit Fail2ban zu verheiraten muss ein einsprechender Jail und ein Filter angelegt werden. Was mich im Vorfeld in Bezug auf WordPress irritierte war der Statuscode 200, wenn ein Login in WordPress fehlschlägt. Hintergrund ist hier das WordPress bei einem erfolgreichen Login stattdessen den Statuscode 302 (Found) nutzt. Damit kann im ersten Schritt der Jail für Fail2ban erstellt werden:

nano /etc/fail2ban/jail.d/wordpress.conf

Diese Datei wird nun wie folgt befüllt:

[wordpress]
enabled = true
port = http,https
filter = wordpress
logpath = /var/log/nginx/access.log
maxretry = 3

Anschließend muss der genutzte Filter ebenfalls angelegt werden:

nano /etc/fail2ban/filter.d/wordpress.conf

Der entsprechende Filter sieht wie folgt aus:

# Filter for WordPress login

[INCLUDES]

before = common.conf
 
[Definition]

failregex = <HOST>.*POST.*(wp-login\.php|xmlrpc\.php).* 200

datepattern = %%d/%%b/%%Y:%%H:%%M:%%S %%z

Nach einem Neustart von Fail2ban mittels:

service fail2ban restart

ist der neue Jail aktiv. Über das Log kann die Arbeit desselben betrachtet werden:

tail -f /var/log/fail2ban.log

Damit sind die WordPress-Installationen gegen den Versuch unbefugter Logins besser abgesichert. Nach drei Fehlversuchen, wird die entsprechende IP-Adresse gesperrt, sodass weitere Verbindungsversuche von dieser IP-Adresse vom Server nicht mehr beantwortet werden.

DNS-Propagation überwachen

Wer einen DNS-Eintrag ändert, der weiß in den meisten Fällen das dieser nicht sofort weltweit verfügbar ist. Stattdessen, dauert es eine Weile bis die entsprechende Änderung auf allen DNS-Servern aktualisiert wurde. Im Normalfall wird von einem maximalen Aktualisierungszeitraum von 48 Stunden ausgegangen.

dnspropagation.net

Um diese DNS-Propagation zu überwachen, existieren eine Reihe von Diensten. Einer dieser Dienste ist der DNS Propagation Check, welcher unter dnspropagation.net zu finden ist. Nach Eingabe der entsprechenden Domain, werden unterschiedliche DNS-Server weltweit angefragt und deren Antworten übersichtlich aufbereitet. So kann sich der Nutzer schnell eine Übersicht verschaffen, ob die Domain mittlerweile auf die richtige IP-Adresse zeigt. Andere Dienste, die das Gleiche bieten sind unter anderem whatsmydns.net und dnschecker.org.

Genutzten DNS-Server unter macOS ermitteln

Um Domains zu ihren jeweiligen IP-Adressen aufzulösen, wird DNS genutzt. Dazu wird eine Anfrage an einen DNS-Server gestellt und dieser antwortet mit der entsprechenen IP-Adresse. Wenn unter macOS die genutzten DNS-Server ermittelt werden soll, kann dies im Terminal bewerkstelligt werden:

scutil --dns | grep nameserver

Als Antwort werden die entsprechenden DNS-Server ausgegeben:

nameserver[0] : 192.168.1.1
nameserver[1] : 8.8.8.8
nameserver[0] : 192.168.1.1
nameserver[1] : 8.8.8.8
nameserver[0] : 192.168.1.1
nameserver[1] : 8.8.8.8

Soll die komplette DNS-Konfiguration angezeigt werden, kann die Filterung mittels grep weggelassen werden:

scutil --dns

Damit erhält der Nutzer eine vollständigere Übersicht.

WinBox unter macOS nutzen

WinBox ist ein Werkzeug zur Verwaltung und Konfiguration von MikroTik-Routern. Neben den gewöhnlichen Werkzeugen zur Verwaltung eines MikroTik-Routers, ist es mittels WinBox möglich, sich über die MAC-Adresse mit dem Router zu verbinden. Dies ist immer dann relevant und praktisch, wenn der entsprechende Router über keinerlei IP-Konfiguration verfügt.

WinBox unter macOS

Verfügbar ist WinBox leider nur für Windows. Allerdings kann WinBox durchaus unter macOS genutzt werden. Im Netz gibt es dafür eine Reihe von Anleitungen, um WinBox mittels Wine unter macOS auszuführen. Wesentlich praktischer ist es beim Projekt WinBox-Mac vorbeizuschauen, welches auf GitHub entwickelt wird. WinBox-Mac ist ein Paket, welches Wine und andere benötigte Komponenten bereits enthält. Installiert werden kann WinBox-Mac über den Paketmanager Homebrew:

brew cask install nrlquaker-winbox

Nach der Installation kann WinBox-Mac wie eine gewöhnliche macOS-Applikation gestartet und genutzt werden. Der Wrapper selbst ist unter der MIT-Lizenz lizenziert und damit freie Software.

IPv6-Paket eines MikroTik-Routers aktivieren

Auf einem MikroTik-Router wollte ich neben dem klassischen IPv4 auch IPv6 nutzen. Im Webinterface sah ich in der Paketübersicht allerdings, dass das betreffende Paket deaktiviert war.

Das IPv6-Paket war deaktiviert

Zur Aktivierung eines Paketes kann unter anderem das Terminal genutzt werden. In diesem muss der Befehl zur Aktivierung des IPv6-Paketes eingegeben werden:

/system package enable ipv6

Anschließend muss das System neugestartet werden:

/system reboot

Nach dem Neustart steht das IPv6-Paket anschließend zur Verfügung.