<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>WordPress - NET73</title>
	<atom:link href="https://net73.de/tag/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>https://net73.de</link>
	<description>Techblog, Freizeitblog &#38; Webhosting</description>
	<lastBuildDate>Wed, 22 Jan 2025 07:12:44 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://net73.de/wp-content/uploads/2025/11/favicon512-150x150.png</url>
	<title>WordPress - NET73</title>
	<link>https://net73.de</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>WP-Fail2Ban &#8211; Auf fehlerhafte Logins reagieren</title>
		<link>https://net73.de/wp-fail2ban-auf-fehlerhafte-logins-reagieren/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=wp-fail2ban-auf-fehlerhafte-logins-reagieren</link>
					<comments>https://net73.de/wp-fail2ban-auf-fehlerhafte-logins-reagieren/#respond</comments>
		
		<dc:creator><![CDATA[Marc Eggert]]></dc:creator>
		<pubDate>Tue, 15 Sep 2020 04:00:00 +0000</pubDate>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[fail2ban]]></category>
		<category><![CDATA[IT Security]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://net73.de/?p=2390</guid>

					<description><![CDATA[<p>WordPress-Seiten sind sehr beliebt, was Angriffe angeht. Das ist schon alleine deshalb so, weil WordPress (WP) auf sehr vielen Seiten genutzt wird. Laut kinsta.com liegt der Marktanteil von WP (Web-Seiten) bei derzeit 37%. Ein entsprechend hoher Marktanteil macht ein Produkt natürlich auch attraktiver für Angreifer. Wenn du die Log-Dateien deiner Webseite durchsiehst, wirst du mit [&#8230;]</p>
<p>The post <a href="https://net73.de/wp-fail2ban-auf-fehlerhafte-logins-reagieren/">WP-Fail2Ban – Auf fehlerhafte Logins reagieren</a> first appeared on <a href="https://net73.de">NET73</a>.</p>]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image is-style-rounded"><figure class="alignleft size-large is-resized"><img decoding="async" src="https://net73.de/wp-content/uploads/2020/09/pexels-jimmy-chan-1309902-1-edited-1.jpg" alt="" class="wp-image-2432" width="155" height="154" srcset="https://net73.de/wp-content/uploads/2020/09/pexels-jimmy-chan-1309902-1-edited-1.jpg 1281w, https://net73.de/wp-content/uploads/2020/09/pexels-jimmy-chan-1309902-1-edited-1-300x300.jpg 300w, https://net73.de/wp-content/uploads/2020/09/pexels-jimmy-chan-1309902-1-edited-1-1024x1021.jpg 1024w, https://net73.de/wp-content/uploads/2020/09/pexels-jimmy-chan-1309902-1-edited-1-150x150.jpg 150w, https://net73.de/wp-content/uploads/2020/09/pexels-jimmy-chan-1309902-1-edited-1-768x766.jpg 768w" sizes="(max-width: 155px) 100vw, 155px" /></figure></div>



<p>WordPress-Seiten sind sehr beliebt, was Angriffe angeht. Das ist schon alleine deshalb so, weil WordPress (WP) auf sehr vielen Seiten genutzt wird. Laut kinsta.com liegt der Marktanteil von WP (Web-Seiten) bei derzeit 37%. Ein entsprechend hoher Marktanteil macht ein Produkt natürlich auch attraktiver für Angreifer.</p>



<p>Wenn du die Log-Dateien deiner Webseite durchsiehst, wirst du mit Sicherheit gescheiterte Login-Versuche, XML-Attacken und ähnliches finden. Angreifer gehen in der Regel so vor, dass sie Logins gleich mehrfach versuchen. Auf solche Mehrfach-Versuche, oder aber auch einzelne Versuche können wir reagieren: via Fail2Ban.</p>



<span id="more-2390"></span>



<h3 class="wp-block-heading">Was ist Fail2Ban?</h3>



<p>Fail2Ban ist ein Linux-Tool, welches fortlaufend vordefinierte Log-Dateien prüft und auf Events reagieren kann. Das Tool überwacht die Log-Dateien mittels regulärer Ausdrücke und kann in der Folge mit IPTables- und Firewall-Regeln reagieren. Das bedeutet: erkennt das Tool beispielsweise drei Fehlerhafte Login-Versuche in Folge, wird die zugehörige IP-Adresse für eine bestimmte Zeit via IPTables gesperrt.</p>



<h3 class="wp-block-heading"> WordPress: Admin-Account und unbekannte Accounts</h3>



<p>In der Default-Einstellung wirst Du einen Admin-Account namens admin in deiner WP-Installation haben. Dies ist bereits eine Information für Angreifer. Der Angreifer kennt nicht, welche Accounts auf deinem System vorhanden sind, wird aber bei den meisten WP-Systemen richtig legen, wenn er einen Benutzer admin vermutet. Daher ist es bei solchen Systemen grundsätzlich eine gute Idee, den eigenen Nickname zum Admin zu machen und auf den &#8222;admin&#8220;-Account zu verzichten, bzw. diesen zu löschen. Es ist sowieso bei fast allen Systemen besser, man verbindet nicht die Funktion (Administrator) mit dem Benutzernamen (admin). </p>



<h3 class="wp-block-heading">WP-Fail2Ban: Voraussetzungen</h3>



<p>Das WP-Plugin WP-Fail2Ban wird nur dann in deiner WP-Umgebung funktionieren, wenn die Basis-Software fail2ban auf dem Server installiert ist. Wenn auf dem Server bereits fail2ban installiert ist und für WP-Fail2Ban konfiguriert ist, reicht es aus, wenn du das Plugin einfach aktivierst.<br>Sollte dies nicht der Fall sein, musst Du (nach der Installation von fail2ban) die Filter-Dateien in das Standard-Verzeichnis /etc/fail2ban/filter.d kopieren (wordpress-soft.conf, wordpress-hard.conf, wordpress-extra.conf).</p>



<p>Das gewünschte Verhalten von WP-Fail2Ban passt du dann in der Datei jail.local an. </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p> Um zu verhindern, dass bei Software-Updates die eigenen Anpassungen überschrieben werden, kopierst du die Datei /etc/fail2ban/jail.conf nach /etc/fail2ban/jail.local. Die Datei jail.local wird bei Updates nicht überschrieben, besitzt für das Programm allerdings eine höhere Gewichtung als jail.conf. Sprich: ist auf dem System eine Datei jail.local vorhanden, wird diese anstelle der jail.conf genutzt.</p><cite>Hinweis zur Anpassung der Konfigurations-Datei jail.conf</cite></blockquote>



<p>Der Datei jail.local fügst du nun folgende Zeilen an:</p>



<pre class="wp-block-code"><code>&#91;wordpress-hard]
enabled = true
filter = wordpress-hard
logpath = /var/log/auth.log
maxretry = 1
port = http,https
action  = %(action_mwl)s

&#91;wordpress-soft]
enabled = true
filter = wordpress-soft
logpath = /var/log/auth.log
maxretry = 3
port = http,https
action  = %(action_mwl)s
</code></pre>



<p> Die Parameter maxretry kannst Du nach eigener Vorstellung anpassen. Diese Parameter bestimmen, wie oft sich der in den Filter-Regeln festgelegte Zustand wiederholen darf. Ein Beispiel: Ein existierender Benutzer (wordpress-soft) meldet sich am Admin-Interface mit einem falschen Passwort an: Er darf drei Mal ein falsches Passwort eingeben, bevor er geblockt wird. Versucht jemand, sich als Benutzer anzumelden, den es in der WordPress-Umgebung gar nicht gibt (wordpress-hard), so wird er gleich nach dem ersten Versuch geblockt. Die genauen Regeln sind in den o.g. Filter-Dateien beschrieben.</p><p>The post <a href="https://net73.de/wp-fail2ban-auf-fehlerhafte-logins-reagieren/">WP-Fail2Ban – Auf fehlerhafte Logins reagieren</a> first appeared on <a href="https://net73.de">NET73</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://net73.de/wp-fail2ban-auf-fehlerhafte-logins-reagieren/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>DEV-Umgebung für WordPress mit Docker, Gitlab &#038; PhpStorm</title>
		<link>https://net73.de/entwicklungsumgebung-fur-wordpress-mit-docker-gitlab-und-phpstorm/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=entwicklungsumgebung-fur-wordpress-mit-docker-gitlab-und-phpstorm</link>
					<comments>https://net73.de/entwicklungsumgebung-fur-wordpress-mit-docker-gitlab-und-phpstorm/#respond</comments>
		
		<dc:creator><![CDATA[Marc Eggert]]></dc:creator>
		<pubDate>Mon, 24 Feb 2020 20:22:34 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[PhpStorm]]></category>
		<category><![CDATA[WordPress]]></category>
		<guid isPermaLink="false">https://pixel64.de/?p=1893</guid>

					<description><![CDATA[<p>In diesem Beitrag zeige ich eine einfache Lösung, wie Du mit Docker, Gitlab und PhpStorm eine schnelle, lokale Entwicklungsumgebung einrichtest. Dies ist vor allem dann ganz gut, wenn Du ein WordPress-Template oder -Plugin entwickeln möchtest. Kurz gesagt: Im Anschluss wirst Du Deine Projekt-Daten für Dein Template oder Plugin auf Gitlab.com ablegen und entwickelst dabei dein [&#8230;]</p>
<p>The post <a href="https://net73.de/entwicklungsumgebung-fur-wordpress-mit-docker-gitlab-und-phpstorm/">DEV-Umgebung für WordPress mit Docker, Gitlab & PhpStorm</a> first appeared on <a href="https://net73.de">NET73</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="has-drop-cap has-very-light-gray-background-color has-background has-medium-font-size"><strong>I</strong>n diesem Beitrag zeige ich eine einfache Lösung, wie Du mit Docker, Gitlab und PhpStorm eine schnelle, lokale Entwicklungsumgebung einrichtest. Dies ist vor allem dann ganz gut, wenn Du ein WordPress-Template oder -Plugin entwickeln möchtest.</p>



<p>Kurz gesagt: Im Anschluss wirst Du Deine Projekt-Daten für Dein Template oder Plugin auf Gitlab.com ablegen und entwickelst dabei dein Projekt lokal auf Deinem Rechner. Der komplette WordPress-Code wird dabei natürlich nicht via git getrackt. PhpStorm eignet sich für die WordPress-Entwicklung sehr gut &#8211; Du kannst allerdings auch jeden anderen Editor verwenden. Dabei musst du eben die Docker-Befehle von Hand eingeben. Es ist allerdings so oder so eine gute Idee, die einzelnen Docker-Befehle manuell zumindest kennenzulernen.</p>



<span id="more-1893"></span>



<h3 class="wp-block-heading">Step 1: Anlegen des Gitlab-Projekts &amp; Anlegen der Docker-Compose-Datei</h3>



<p>Entweder nutzt Du ein neues Projekt auf https://gitlab.com oder Du legst ein neues Projekt auf Deiner selbstgehosteten Gitlab-Installation an. Im neu angelegten Gitlab-Projekt kannst Du jetzt eine neue Datei anlegen. Diese nennst Du <strong>docker-compose.yml</strong>.</p>



<p>Inhalt der Datei:</p>



<pre title="docker-compose.yml" class="wp-block-code"><code lang="yaml" class="language-yaml line-numbers">version: '3'

services:
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: somewordpress
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress

  wordpress:
    depends_on:
      - db
    image: wordpress
    ports:
      - "666:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
    working_dir: /var/www/html
    volumes:
      - ./:/var/www/html
      - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
volumes:
  db_data:</code></pre>



<h4 class="wp-block-heading">Erklärung: </h4>



<p><strong>image:</strong> Es werden hier zwei Docker-Container definiert und verbunden. Für diesen Test habe ich das Standard-Wordpress-Image genutzt. Das bedeutet, dass jeweils die aktuellste WordPress-Version gezogen wird. In den allermeisten Fällen ist dies auch am sinnvollsten &#8211; es sei denn, man möchte ein Plugin oder Theme für eine ältere WP-Version testen oder entwickeln.</p>



<p><strong>volumes:</strong> Mit Volumes können Verzeichnisse aus den Docker-Containern in das lokale Verzeichnis gemountet werden. Ich lade i.d.R. das komplette WordPress-Verzeichnis in die Projekt-Root, so dass ich auch später die WordPress-Erweiterungen von PHP-Storm nutzen kann (und bei Bedarf Zugriff auf WP-Core-Dateien habe).<br>Es ist allerdings auch denkbar, dass Du Dir hier _nur_ Dein Plugin oder Theme in die Projekt-Root lädst, oder gar die WordPress-Installation in ein anderes Verzeichnis in der Projekt-Root lädst. Folgende Alternativen wären hier denkbar:<br>&#8211; <strong>./wordpress:/var/www/html</strong> &#8211; Die WordPress-Installation ins lokale Verzeichnis wordpress laden.<br>&#8211; <strong>./:/var/www/html/wp-content/plugins/myplugin</strong> &#8211; nur &#8222;myplugin&#8220; wird in die lokale Projekt-Root geladen</p>



<h3 class="wp-block-heading">Step 2: PhpStorm-Projekt anlegen, Code aus Git holen</h3>



<p>Beim Start von PhpStorm legst Du jetzt ein neues Projekt über den Listen-Eintrag &#8222;Get from Version Control&#8220; an. Hierbei benötigst Du die Clone-URL aus gitlab.com. Außerdem sollte dein lokaler SSH-Schlüssel in deinem Repository eingetragen sein. Alternativ fragt PhpStorm beim clonen aber auch nach Benutzernamen und Passwort &#8211; die SSH-Verbindung ist allerdings m.E. die einfachere Methode. <br>Im Anschluss wird das Projektverzeichnis automatisch erstellt und die Projektdatei (docker-compose.yml) in dieses Verzeichnis geladen. Nach dem Clone-Vorgang kannst Du auf &#8222;yes&#8220; klicken &#8211; das Projekt wird jetzt via PhpStorm geöffnet (&#8222;Would you like to open the directory&#8230;?&#8220;).</p>



<figure class="wp-block-image size-large"><img decoding="async" src="http://127.0.0.1/wp-content/uploads/2020/02/phpstorm_dockersettings.png" alt="" class="wp-image-1904"/><figcaption>Docker-Einstellungen in PhpStorm &#8211; hier: Windows</figcaption></figure>



<p>Als nächstes definieren wir Docker für das Projekt (Docker für Windows, Linux oder Mac solltest Du natürlich bereits installiert und gestartet haben &#8211; Standard-Einstellungen).<br>Über das Plus-Zeichen (siehe Screenshot oben) kannst du eine neue Docker-Konfiguration hinzufügen. Die obigen Einstellungen werden schon so automatisch ausgefüllt (funktioniert entsprechend auch unter Linux und Mac OS). Nachdem die Einstellungen wie oben passen, kannst Du den Settings-Dialog auch schon wieder per Klick auf &#8222;OK&#8220; schließen.</p>



<h3 class="wp-block-heading">Step 3: Docker-Setup starten</h3>



<figure class="wp-block-image size-large"><img decoding="async" src="http://127.0.0.1/wp-content/uploads/2020/02/phpstorm_rundockercompose.png" alt="" class="wp-image-1907"/><figcaption>docker-compose.yml starten</figcaption></figure>



<p>In den Projekt-Dateien kannst Du jetzt automatisch via Rechtsklick auf die docker-compose.yml das Docker-Setup starten. Wenn Du dies machst, passiert folgendes: Die beiden definierten Docker-Container werden gestartet und eine WordPress-Installation wird durchgeführt. Je nach Einstellung in der docker-compose.yml-Datei werden hierbei auch automatisch die notwendigen Ports gemappt. Sprich: WordPress läuft über den Webserver-Container innerhalb des Docker-Netzes. Da wir nur jeweils einen Port 80 zur Verfügung haben, aber ggf. mehrere Webservices via Docker laufen lassen, mappen wir den Port 80 einfach auf einen alternativen Port. Im Beispielsfall von oben ist dies Port 666. Die vorläufige WordPress-Grundinstallation erreichst du ab jetzt also über die URL http://localhost:666 in deinem Browser.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="http://127.0.0.1/wp-content/uploads/2020/02/phpstorm_dockerrunning-1024x277.png" alt="" class="wp-image-1908"/><figcaption>Laufende Docker-Instanzen in PhpStorm</figcaption></figure>



<p>Wenn das Setup geklappt hat, siehst du im unteren Bereich von PhpStorm die Erfolgsmeldung &#8222;Compose: docker-compose.yml has been deployed successfully&#8220; im Abschnitt Deploy Log. Natürlich bemerkst Du es auch dann, wenn du im Browser die WordPress-Einrichtungs-Seite unter http://localhost:666 erreichst.</p>



<p>Was ist noch passiert? Je nachdem, wie die Volumes-Config (siehe Step 1) aussehen, werden nun auch sämtliche WordPress-Dateien in der Projekt-Root angezeigt. Im Settings-Dialog von PhpStorm kann man jetzt also auch den WordPress-Support aktivieren.</p>



<h3 class="wp-block-heading">Step 4: Was wird getrackt, was wird ignoriert?</h3>



<p>Bereits weiter oben hatte ich schon erwähnt, dass es nicht sehr sinnvoll ist, irgendwelchen WordPress-Core-Code via git zu tracken, da dieser natürlich kontinuierlich weiterentwickelt wird und sich ggf. auch hier und da verändert.</p>



<p>Wichtig ist an dieser Stelle auch, dass Du am Besten gar keine WordPress-Core-Updates über das Web-Interface installierst, sondern stattdessen immer gleich ein neues Docker-Image ziehst (einfach das Setup erneut ausführen &#8211; die bestehenden Docker-Container entfernen).</p>



<p>An dieser Stelle kommt jetzt die Datei &#8222;.gitignore&#8220; ins Spiel. Mit dieser Datei kannst Du Dateien aus dem Git-Tracking ausschließen. Im Grunde wollen wir alles ignorieren, außer die Verzeichnisse für unser Plugin und/oder Theme. Hinweis: Die .gitignore sollte natürlich mit ins GIT-Repository aufgenommen werden (git add .gitignore).</p>



<pre title=".gitignore" class="wp-block-code"><code lang="bash" class="language-bash line-numbers"># filename: .gitignore
# IntelliJ project files
.idea
*.iml
out
gen
# Alles ignorieren
/*
.*
# Ausnahmen definieren
!.gitignore
!README.md
/wp-content/*
!/wp-content/themes/powermetal/</code></pre>



<h3 class="wp-block-heading">Zusatz</h3>



<p>Für die lokale Docker-Entwicklung wird früher oder später das Problem auftauchen, dass du entweder die lokal gemounteten Dateien nicht bearbeiten kannst, oder dass du Plugins in WordPress (Docker) nicht ohne FTP-Zugang hinzufügen kannst, weil die Dateirechte nicht passen. Im Docker-Container werden die Dateirechte vom Image aus dem Benutzer und der Gruppe www-data zugewiesen. Dies kann, muss aber nicht dieselbe Benutzer-ID wie auf deinem lokalen System sein. Die Berechtigungen kannst du Anpassen, in dem du direkt auf eine Shell in den Docker-Container verbindest. Dies passiert mit dem folgenden Kommando:</p>



<p><code>docker exec -u root -it [DOCKER-ID] /bin/bash</code> </p>



<p>Die [DOCKER-ID] erhältst du über das folgende Kommando:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">eggi@arche ~/PhpstormProjects/pmwp $ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                  PORTS                  NAMES
4867c885db42        wordpress           "docker-entrypoint.s…"   32 hours ago        Up Less than a second   0.0.0.0:666->80/tcp    pmwp_wordpress_1
bd78c4dbe73d        mysql:5.7           "docker-entrypoint.s…"   32 hours ago        Up Less than a second   3306/tcp, 33060/tcp    pmwp_db_1
</code></pre>



<p>Die Docker-ID ist die Zeichenfolge in der ersten Tabellen-Spalte. In meinem Fall würde das Kommando für die Shell zum Docker-Container (wordpress) also wie folgt lauten:</p>



<pre class="wp-block-code"><code lang="bash" class="language-bash">docker exec -u root -it 4867c885db42 /bin/bash </code></pre>



<p>In der Shell können dann die Dateirechte beispielsweise via <strong>chmod</strong> und <strong>chown</strong> angepasst werden. WordPress befindet sich im Standard-Image im Verzeichnis <strong>/var/www/html</strong>.</p><p>The post <a href="https://net73.de/entwicklungsumgebung-fur-wordpress-mit-docker-gitlab-und-phpstorm/">DEV-Umgebung für WordPress mit Docker, Gitlab & PhpStorm</a> first appeared on <a href="https://net73.de">NET73</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://net73.de/entwicklungsumgebung-fur-wordpress-mit-docker-gitlab-und-phpstorm/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
