Copying sources and texts (also in parts) for publishing without our permission is NOT ALLOWED. We are fed up with finding our work on other sites (like stackoverflow).
Das Kopieren von Quellcode und Texten (auch in Auszügen) ist nicht erlaubt. Wir haben es gründlich satt, unsere Arbeit auf anderen Webseiten zu finden.

Copying for non-public usage is allowed.           Das private Kopieren und Benutzen ist natürlich erlaubt und erwünscht.
29. Sep 2018
Teaser

Shopware: Plugins werden nicht installiert (z.Bsp. PayPal)

Wenn Sie in Shopware (hier Version 5.5.1) nach einer fehlerfreien Installation keine Plugins (z.Bsp. PayPal) installieren können, dann wird Ihrem Server die PHP Erweiterung für die Verarbeitung von ZIP Dateien fehlen. Hier ein Auszug aus dem Fehlerbericht:

mod_fcgid: stderr: PHP Fatal error:  Uncaught Error: Class 'ZipArchive' not found in /home/path/public_html/engine/Shopware/Bundle/PluginInstallerBundle/Service/ZipUtils.php:41
mod_fcgid: stderr: Stack trace:
mod_fcgid: stderr: #0 /home/path/public_html/engine/Shopware/Bundle/PluginInstallerBundle/Service/DownloadService.php(100): Shopware\\Bundle\\PluginInstallerBundle\\Service\\ZipUtils::openZip('/home/path/...')
mod_fcgid: stderr: #1 /home/path/public_html/engine/Shopware/Plugins/Default/Backend/PluginManager/Controllers/Backend/PluginManager.php(147): Shopware\\Bundle\\PluginInstallerBundle\\Service\\DownloadService->extractPluginZip('/home/path/...', 'SwagPaymentPayP...')
mod_fcgid: stderr: #2 /home/path/public_html/engine/Library/Enlight/Controller/Action.php(193): Shopware_Controllers_Backend_PluginManager->extractAction()
mod_fcgid: stderr: #3 /home/path/public_html/engine/Library/Enlight/Controller/Dispatcher/Default.php(549): Enlight_Controller_Action->dispatch('extractAction')
mod_fcgid: stderr: #4 /home/path/public_html/engine/Library/Enlight/Controller/Front.php(222): Enlight_Con in /home/path/public_html/engine/Shopware/Bundle/PluginInstallerBundle/Service/ZipUtils.php on line 41

Die Lösung in diesem Fall ist die Installation des benötigten PHP Pakets/Erweiterung (ggf. die PHP Version anpassen: php5.6, php7.0, php7.2, …):

apt-get install php7.1-zip

Danach bitte den Neustart des Webservers nicht vergessen:

/etc/init.d/apache2 restart
19. Sep 2018
Teaser

Chrome: Abgerundete Tabs etc. deaktivieren / abschalten

Chrome hat von Zeit zu Zeit die Angewohnheit, das Layout (auch “UI”) beim Start einfach mal so mit abgerundeten Ecken darzustellen. Wem das auch garnicht gefällt, der kann diese Einstellung einfach aufheben.

In Chrome in die URL Zeile folgende Adresse eingeben:

chrome://flags/#top-chrome-md

Dort den ersten Eintrag “UI Layout for the browser’s top chrome” auf “Normal” stellen und unten rechts auf “Relaunch now” klicken. Fertig.

12. Sep 2018
Teaser

Docker Fehler: Version in “./docker-compose.yml” is unsupported.

Wenn beim Ausführen des Befehles

docker-compose up

die folgende Fehlermeldung angezeigt wird, …

ERROR: Version in "./docker-compose.yml" is unsupported. You might be seeing this error because you're using the wrong Compose file version. Either specify a version of "2" (or "2.0") and place your service definitions under the `services` key, or omit the `version` key and place your service definitions at the root of the file to use version 1.

… dann können Sie von einem Fehler (Bug) in der Software von docker-composer betroffen sein. Durch den Fehler wird das Format (Version 3.1) nicht als richtig anerkannt.

Prüfen Sie, welche Version auf Ihrem System installiert ist:

docker-compose --version
docker-compose version 1.8.0, build unknown

Installieren Sie eine aktuelle Version von docker-compose. Finden und löschen Sie dafür die aktuelle Version:

which docker-compose
/usr/bin/docker-compose
rm /usr/bin/docker-compose

Laden Sie die für Ihr System passende Version neu herunter …

curl -L https://github.com/docker/compose/releases/download/1.20.0/docker-compose-`uname -s`-`uname -m` -o /usr/bin/docker-compose

… und erlauben Sie die Ausführung:

chmod +x /usr/bin/docker-compose

Überprüfen Sie die Version:

docker-compose --version
docker-compose version 1.20.0, build ca8d3c6

Jetzt sollte docker-compose die Datei verarbeiten können.

03. Sep 2018
Teaser

Sicherheit: Linux Firewall per iptables (WebServer Beispiel)

Sollten Sie die Befehle auch für eine IPv6 Firewall umsetzen wollen, dann ersetzen Sie bitte im folgenden stets “iptables” durch “ip6tables”.

SSH Zugriff erlauben

iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -I INPUT -i lo -j ACCEPT

Jetzt die beiden wichtigsten Standardports für WebServer freigeben: 80 für normale HTTP und 443 für verschlüsselte HTTPS (SSL) Seiten:

iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

Sollten Sie einen (zu SSH zusätzlichen) Service zur Verwaltung Ihres Servers benutzen, wie z.Bsp. VirtualMin (Unser Beitrag zur Installation), dann sollten diese Ports jetzt ebenfalls freigegeben werden:

iptables -A INPUT -p tcp --dport 10000 -j ACCEPT
iptables -A INPUT -p tcp --dport 20000 -j ACCEPT

Jetzt können wir den Server abdichten, denn unser SSH Zugang ist bereits erlaubt. Diesen brauchen wir zwingend, denn ansonsten stehen wir gleich von außen vor der abgeschlossenen Tür.

iptables -P INPUT DROP

Für Programme wie “apt-get” sollten nun ein paar Ausnahmen hinzugefügt werden. Diese erlauben “etablierten Verbindungen” eine Verbindung und Rückmeldung von/nach außen durch die Firewall:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Um die erstellten Regeln auch nach einem Serverneustart zu behalten, speichern Sie diese bitte ab:

iptables-save > /etc/iptables/rules.v4

bzw. für IPv6 mit folgendem Befehl:

ip6tables-save > /etc/iptables/rules.v6

Weitere Ausnahmen und Regeln können jederzeit hinzugefügt werden:

Beispiel IMAP / SMTP MailServer:

iptables -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -A INPUT -p tcp --dport 993 -j ACCEPT
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --dport 465 -j ACCEPT
iptables -A INPUT -p tcp --dport 587 -j ACCEPT

Beispiel: FTP Server (unsichere Standard-Ports 20 & 21)

Bei FTP sind ebenfalls die passiven Ports freizugeben, welches Sie in Ihrer FTP-Server-Konfiguration festlegen können. Haben Sie die passiven Ports nicht freigegeben, bleibt entweder nur aktives FTP oder es kommt zu Verbindungsproblemen.

iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT

Beispiel Netdata WebGUI freigeben. Diese läuft im Standard auf Port 19999:

iptables -A INPUT -p tcp --dport 19999 -j ACCEPT

Ein Hinweis, wenn Sie mit VirtualMin arbeiten:
Die per Shell (Kommandozeile) gesetzten Regeln werden nicht automatisch in die Firewall-Konfiguration von VirtualMin (oder WebMin) übernommen. Bitte speichern Sie daher die Regeln am Ende in der VirtalMin-Firewall-Konfiguration:

iptables-save > /etc/iptables.up.rules

Einen Überblick über die eingestellten Regeln erhalten Sie durch folgenden Befehl:

iptables -L -n